@dschz/try-catch
Version:
Simple try-catch utility function for JavaScript
26 lines (25 loc) • 702 B
JavaScript
// src/index.ts
function tryCatch(input) {
if (input instanceof Promise) {
return input.then((data) => [null, data]).catch((e) => {
const error = e instanceof Error ? e : new Error(String(e), { cause: e });
return [error, null];
});
}
try {
const result = input();
if (result instanceof Promise) {
return result.then((data) => [null, data]).catch((e) => {
const error = e instanceof Error ? e : new Error(String(e), { cause: e });
return [error, null];
});
}
return [null, result];
} catch (e) {
const error = e instanceof Error ? e : new Error(String(e), { cause: e });
return [error, null];
}
}
export {
tryCatch
};