UNPKG

do-try-tuple

Version:

Catches errors and rejected promises, returns tuple

19 lines (18 loc) 588 B
import { isPromise } from './isPromise.js'; /** @since 3.0.0 */ export const success = (value) => [true, undefined, value]; /** @since 3.0.0 */ export const failure = (err) => [false, err, undefined]; export const safe = (promise) => promise.then(success, failure); export const doTry = (fn) => { try { const result = fn(); return isPromise(result) ? safe(result) : success(result); } catch (error) { return failure(error); } }; export const isFailure = (result) => !result[0]; export const isSuccess = (result) => result[0]; export default doTry;