UNPKG

funcdash

Version:

Lodash mixin for more functional utilities.

36 lines (29 loc) 818 B
var reArg = require('lodash-compat/function/rearg'); var curry = require('lodash-compat/function/curry'); var cloneDeep = require('lodash-compat/lang/cloneDeep'); var curried = cloneDeep(require('./')); var aryMethodMap = { 1: ['not', 'product'], 2: ['and', 'or', 'apply', 'multiply'], 3: [] } var aryReargMap = { 1: [0], 2: [1, 0], 3: [2, 0, 1] } function convert (func, aryReargMap) { return curry(reArg(func, aryReargMap), aryReargMap.length); } var ary, i, methods, methodName; for (ary in aryMethodMap) { if (!aryMethodMap.hasOwnProperty(ary)) { continue; } methods = aryMethodMap[ary]; for (var i = 0; i < methods.length; i++) { methodName = methods[i]; curried[methodName] = convert(curried[methodName], aryReargMap[ary]) } } module.exports = curried;