UNPKG

ts-utls

Version:

Utilities for TypeScript library

38 lines 1.89 kB
"use strict"; /* * Private common functions for monads * * @see The `monet` library by Chris Myers and Jakub Strojewski of which this monad implementation is heavily inspired */ Object.defineProperty(exports, "__esModule", { value: true }); exports.swap = exports.noop = exports.isFunction = exports.idFunction = exports.getArgs = exports.falseFunction = exports.equals = exports.areEqual = void 0; const areEqual = (a, b) => { if (a === b || a !== a && b !== b) { return true; } if (!a || !b) { // eslint-disable-line @typescript-eslint/strict-boolean-expressions return false; } /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call */ if ((0, exports.isFunction)(a.equals) && (0, exports.isFunction)(b.equals)) { return a.equals(b); } /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call */ return false; }; exports.areEqual = areEqual; const equals = (a) => (b) => (0, exports.areEqual)(a, b); exports.equals = equals; const falseFunction = () => false; exports.falseFunction = falseFunction; const getArgs = (args) => Array.prototype.slice.call(args); exports.getArgs = getArgs; const idFunction = (value) => value; exports.idFunction = idFunction; const isFunction = (f) => Boolean(f && f.constructor && f.call && f.apply); // eslint-disable-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/no-unsafe-member-access exports.isFunction = isFunction; const noop = () => { }; // eslint-disable-line @typescript-eslint/no-empty-function exports.noop = noop; const swap = (f) => (a, b) => f(b, a); // eslint-disable-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call exports.swap = swap; //# sourceMappingURL=index.js.map