@daysnap/utils
Version:
30 lines (24 loc) • 1.32 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunkN455COPHcjs = require('./chunk-N455COPH.cjs');
// src/createWithToast.ts
function createWithToast(options = {}) {
const { onError } = options;
return (fn) => {
return function(...args) {
try {
const result = fn.apply(this, args);
if (_chunkN455COPHcjs.isPromiseLike.call(void 0, result)) {
return Promise.resolve(result).catch((err) => {
_optionalChain([onError, 'optionalCall', _ => _(err)]);
throw "cancel:handled";
});
}
return result;
} catch (error) {
_optionalChain([onError, 'optionalCall', _2 => _2(error)]);
throw "cancel:handled";
}
};
};
}
exports.createWithToast = createWithToast;