UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

76 lines (75 loc) 2.13 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); import { isError } from './index'; var UnknownError = /** @class */ (function (_super) { __extends(UnknownError, _super); function UnknownError(data) { var _this = _super.call(this, JSON.stringify(data)) || this; _this.data = data; _this.name = 'UnknownError'; return _this; } return UnknownError; }(Error)); export { UnknownError }; /** * Assertion statement * @throws Throws if data is instance of error * @export * const request = () => P.canFail(()=> axios.get(url)) * const result = await request.then(P.assertError) * @category Utility */ export function assertError(data) { if (isError(data)) { throw data; } return data; } /** * Ensures that err is Error instance * @signature * P.ensureError(any) * @example * const request = doRequest().catch(P.ensureError) * if (P.isError(request)) return * @category Utility */ export function ensureError(err) { if (isError(err)) { return err; } return new UnknownError(err); } // tslint:disable-next-line: promise-function-async export function canFail(fn) { try { var r = fn(); if (r instanceof Promise) { return r.catch(function (err) { if (isError(err)) { return err; } return new UnknownError(err); }); } return r; } catch (err) { if (isError(err)) { return err; } return new UnknownError(err); } }