diff options
Diffstat (limited to 'src/utils/defaults.ts')
-rw-r--r-- | src/utils/defaults.ts | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/utils/defaults.ts b/src/utils/defaults.ts index 3d253d5..1e52b49 100644 --- a/src/utils/defaults.ts +++ b/src/utils/defaults.ts @@ -1,4 +1,4 @@ -export { withDefaultOnError }; +export { withDefaultOnError, withDefaultOnErrorAsync }; function withDefaultOnError<A, B>(cb: () => A, defaultValue: B): A | B { try { @@ -7,3 +7,11 @@ function withDefaultOnError<A, B>(cb: () => A, defaultValue: B): A | B { return defaultValue; } } + +async function withDefaultOnErrorAsync<A, B>(cb: () => A, defaultValue: B): Promise<Awaited<A> | B> { + try { + return await cb(); + } catch (_) { + return defaultValue; + } +} |