UNPKG

@promises/to-callback

Version:

To Callback is package from Promises library

101 lines (90 loc) 3.51 kB
/** * @module @promises/to-callback/fp * @copyright © 2017 Yisrael Eliav <yisraelx@gmail.com> (https://github.com/yisraelx) * @license MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.PF = global.PF || {}))); }(this, (function (exports) { 'use strict'; /** * @module @pakal/arity * @copyright © 2018 Yisrael Eliav <yisraelx@gmail.com> (https://github.com/yisraelx) * @license MIT */ var FUNCTIONS = {}; function arity(fn, length) { if (length === void 0) { length = fn.length; } if (!FUNCTIONS[length]) { var params = []; for (var index = 0; index < length; index++) { params.push("p" + index); } FUNCTIONS[length] = new Function("fn", "return function (" + params.join(', ') + "){\n return fn.apply(this, arguments);\n };"); } return FUNCTIONS[length](fn); } /** * @module @pakal/curry * @copyright © 2018 Yisrael Eliav <yisraelx@gmail.com> (https://github.com/yisraelx) * @license MIT */ var __ = { '@@functional/placeholder': true }; function isPlaceholder(arg) { return typeof arg === 'object' && arg['@@functional/placeholder'] === true; } function curry(fn, length) { if (length === void 0) { length = fn.length; } var next = function (previousArgs, count) { var nextLength = length - count; return arity(function () { var currentLength = arguments.length < length ? arguments.length : length; var currentArgs = [].concat(previousArgs); var currentCount = count; var pos = 0; for (var i = 0; i < currentLength; i++) { var arg = arguments[i]; while (pos < length && !isPlaceholder(currentArgs[pos])) { pos++; } if (!isPlaceholder(arg)) { currentCount++; currentArgs[pos] = arg; } pos++; } return currentCount >= length ? fn.apply(this, currentArgs) : next(currentArgs, currentCount); }, nextLength); }; var args = Array.apply(null, Array(length)).map(function () { return __; }); return next(args, 0); } function _curry(fn, length) { if (length === void 0) { length = fn.length; } return curry((function () { var length = arguments.length; var args = Array(length); if (length) { args[0] = arguments[--length]; for (var i = 0; i < length; i++) { args[i + 1] = arguments[i]; } } return fn.apply(this, args); }), length); } function toCallback(value, callback) { return Promise .resolve(value) .then(function (value) { return callback(null, value); }, callback); } var curriedToCallback = _curry(toCallback); exports.default = curriedToCallback; exports.__ = __; Object.defineProperty(exports, '__esModule', { value: true }); exports.toCallback = exports.default; }))); //# sourceMappingURL=bundle.umd.js.map