cloudcmd/modules/currify/lib/currify.js
2016-11-14 15:30:59 +02:00

23 lines
No EOL
716 B
JavaScript

'use strict';
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
module.exports = currify;
var tail = function tail(list) {
return [].slice.call(list, 1);
};
function currify(fn) {
check(fn);
var args = tail(arguments);
if (args.length >= fn.length) return fn.apply(undefined, _toConsumableArray(args));else return function () {
return currify.apply(undefined, [fn].concat(_toConsumableArray(args), Array.prototype.slice.call(arguments)));
};
}
function check(fn) {
if (typeof fn !== 'function') throw Error('fn should be function!');
}