UNPKG

typescript-functional-extensions

Version:

A TypeScript implementation of synchronous and asynchronous Maybe and Result monads

51 lines (50 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.never = void 0; exports.isDefined = isDefined; exports.isSome = isSome; exports.isNone = isNone; exports.isFunction = isFunction; exports.isPromise = isPromise; exports.pipeFromArray = pipeFromArray; exports.noop = noop; const never = () => { throw Error('This error should be unreachable'); }; exports.never = never; function isDefined(value) { return value !== undefined && value !== null; } function isSome(value) { return value !== undefined && value !== null; } function isNone(value) { return !isDefined(value); } function isFunction(value) { return typeof value === 'function'; } function isPromise(value) { return value instanceof Promise; } /** * Sourced from https://github.com/ReactiveX/rxjs/blob/7268bd31d1cb30cf01a1a69a7b14458e15b76b58/src/internal/util/pipe.ts * @param fns * @returns */ function pipeFromArray(fns) { if (fns.length === 0) { return noop; } if (fns.length === 1) { return fns[0]; } return function piped(input) { return fns.reduce((prev, fn) => fn(prev), input); }; } function noop(value) { if (value) { return value; } }