node-op
Version:
Interactive 1Password CLI and installer
43 lines (38 loc) • 807 B
JavaScript
;
var ensureError = require('./chunk-ec31973d.js');
function safeCall(fn) {
try {
return Promise.resolve(fn());
} catch (exc) {
return Promise.reject(exc);
}
}
const catchAsync = async (fn, opts = {}) => {
try {
const result = await safeCall(fn);
return {
error: null,
result
};
} catch (err) {
return {
error: opts.errorMessage ? new ensureError.AggregateError(opts.errorMessage, ensureError.ensureError(err)) : ensureError.ensureError(err),
result: null
};
}
};
const catchSync = fn => {
try {
return {
error: null,
result: fn()
};
} catch (err) {
return {
error: ensureError.ensureError(err),
result: null
};
}
};
exports.catchAsync = catchAsync;
exports.catchSync = catchSync;