typescript-functional-extensions
Version:
A TypeScript implementation of synchronous and asynchronous Maybe and Result monads
40 lines (39 loc) • 956 B
JavaScript
export const never = () => {
throw Error('This error should be unreachable');
};
export function isDefined(value) {
return value !== undefined && value !== null;
}
export function isSome(value) {
return value !== undefined && value !== null;
}
export function isNone(value) {
return !isDefined(value);
}
export function isFunction(value) {
return typeof value === 'function';
}
export function isPromise(value) {
return value instanceof Promise;
}
/**
* Sourced from https://github.com/ReactiveX/rxjs/blob/7268bd31d1cb30cf01a1a69a7b14458e15b76b58/src/internal/util/pipe.ts
* @param fns
* @returns
*/
export 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);
};
}
export function noop(value) {
if (value) {
return value;
}
}