UNPKG

do-try-tuple

Version:

Catches errors and rejected promises, returns tuple

28 lines (27 loc) 990 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSuccess = exports.isFailure = exports.doTry = exports.safe = exports.failure = exports.success = void 0; const isPromise_js_1 = require("./isPromise.js"); /** @since 3.0.0 */ const success = (value) => [true, undefined, value]; exports.success = success; /** @since 3.0.0 */ const failure = (err) => [false, err, undefined]; exports.failure = failure; const safe = (promise) => promise.then(exports.success, exports.failure); exports.safe = safe; const doTry = (fn) => { try { const result = fn(); return (0, isPromise_js_1.isPromise)(result) ? (0, exports.safe)(result) : (0, exports.success)(result); } catch (error) { return (0, exports.failure)(error); } }; exports.doTry = doTry; const isFailure = (result) => !result[0]; exports.isFailure = isFailure; const isSuccess = (result) => result[0]; exports.isSuccess = isSuccess; exports.default = exports.doTry;