UNPKG

@daysnap/utils

Version:
30 lines (24 loc) 1.32 kB
"use strict";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;