it-tools/src/utils/defaults.ts
2023-03-10 18:16:55 +01:00

17 lines
383 B
TypeScript

export { withDefaultOnError, withDefaultOnErrorAsync };
function withDefaultOnError<A, B>(cb: () => A, defaultValue: B): A | B {
try {
return cb();
} catch (_) {
return defaultValue;
}
}
async function withDefaultOnErrorAsync<A, B>(cb: () => A, defaultValue: B): Promise<Awaited<A> | B> {
try {
return await cb();
} catch (_) {
return defaultValue;
}
}