UNPKG

dashp

Version:

Utilities for monadic promises.

60 lines (51 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.curry10 = exports.curry9 = exports.curry8 = exports.curry7 = exports.curry6 = exports.curry5 = exports.curry4 = exports.curry3 = exports.curry2 = void 0; var _namefn = _interopRequireDefault(require("./namefn")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const ncurry = n => { const localCurry = (name, f, ...args) => { // This allows checkTypes to throw nicer error messages. const localF = (0, _namefn.default)(`Future#${name}`, f); const g = (...largs) => { const rest = args.concat(largs); if (rest.length < n) return localCurry(name, localF, ...rest); // This allows for the curried variadic function pattern. return localF(...rest.slice(0, n)); }; return (0, _namefn.default)(`${name}-${n - args.length}`, g); }; return localCurry; }; const curry2 = ncurry(2); exports.curry2 = curry2; const curry3 = ncurry(3); exports.curry3 = curry3; const curry4 = ncurry(4); exports.curry4 = curry4; const curry5 = ncurry(5); exports.curry5 = curry5; const curry6 = ncurry(6); exports.curry6 = curry6; const curry7 = ncurry(7); exports.curry7 = curry7; const curry8 = ncurry(8); exports.curry8 = curry8; const curry9 = ncurry(9); exports.curry9 = curry9; const curry10 = ncurry(10); exports.curry10 = curry10; var _default = { curry2, curry3, curry4, curry5, curry6, curry7, curry8, curry9, curry10 }; exports.default = _default; //# sourceMappingURL=curry.js.map