Simplify fp map.

This commit is contained in:
John-David Dalton
2016-01-13 22:01:24 -08:00
parent fe3d86bf13
commit 06395f8436
3 changed files with 24 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
var mapping = require('./mapping.js'),
mutateMap = mapping.mutateMap;
mutateMap = mapping.mutate;
/**
* The base implementation of `convert` which accepts a `util` object of methods
@@ -158,13 +158,13 @@ function baseConvert(util, name, func) {
}
var result;
each(mapping.caps, function(cap) {
each(mapping.aryMethodMap[cap], function(otherName) {
each(mapping.aryMethod[cap], function(otherName) {
if (name == otherName) {
result = ary(func, cap);
if (cap > 1 && !mapping.skipReargMap[name]) {
result = rearg(result, mapping.methodReargMap[name] || mapping.aryReargMap[cap]);
if (cap > 1 && !mapping.skipRearg[name]) {
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[cap]);
}
var n = !isLib && mapping.aryIterateeMap[name];
var n = !isLib && mapping.aryIteratee[name];
if (n) {
result = iterateeAry(result, n);
}
@@ -185,8 +185,8 @@ function baseConvert(util, name, func) {
// Iterate over methods for the current ary cap.
var pairs = [];
each(mapping.caps, function(cap) {
each(mapping.aryMethodMap[cap], function(key) {
var func = _[mapping.keyMap[key] || key];
each(mapping.aryMethod[cap], function(key) {
var func = _[mapping.key[key] || key];
if (func) {
pairs.push([key, wrap(key, func)]);
}
@@ -200,7 +200,7 @@ function baseConvert(util, name, func) {
// Wrap the lodash method and its aliases.
each(keys(_), function(key) {
each(mapping.aliasMap[key] || [], function(alias) {
each(mapping.alias[key] || [], function(alias) {
_[alias] = _[key];
});
});

View File

@@ -1,7 +1,7 @@
module.exports = {
/** Used to map method names to their aliases. */
'aliasMap': {
'alias': {
'ary': ['nAry'],
'overEvery': ['allPass'],
'overSome': ['somePass'],
@@ -31,7 +31,7 @@ module.exports = {
},
/** Used to map method names to their iteratee ary. */
'aryIterateeMap': {
'aryIteratee': {
'assignWith': 2,
'cloneDeepWith': 1,
'cloneWith': 1,
@@ -71,7 +71,7 @@ module.exports = {
},
/** Used to map ary to method names. */
'aryMethodMap': {
'aryMethod': {
1: (
'attempt,ceil,create,curry,curryRight,floor,fromPairs,iteratee,invert,over,' +
'overEvery,overSome,memoize,method,methodOf,mixin,rest,reverse,round,' +
@@ -98,14 +98,14 @@ module.exports = {
},
/** Used to map ary to rearg configs by method ary. */
'aryReargMap': {
'aryRearg': {
2: [1, 0],
3: [2, 1, 0],
4: [3, 2, 0, 1]
},
/** Used to map ary to rearg configs by method names. */
'methodReargMap': {
'methodRearg': {
'clamp': [2, 0, 1],
'reduce': [2, 0, 1],
'reduceRight': [2, 0, 1],
@@ -119,14 +119,14 @@ module.exports = {
'caps': [1, 2, 3, 4],
/** Used to map keys to other keys. */
'keyMap': {
'key': {
'curryN': 'curry',
'curryRightN': 'curryRight',
'getOr': 'get'
},
/** Used to identify methods which mutate arrays or objects. */
'mutateMap': {
'mutate': {
'array': {
'fill': true,
'pull': true,
@@ -153,7 +153,7 @@ module.exports = {
},
/** Used to track methods that skip `_.rearg`. */
'skipReargMap': {
'skipRearg': {
'assign': true,
'assignIn': true,
'defaults': true,

View File

@@ -71,7 +71,7 @@
QUnit.test('should have correct aliases', function(assert) {
assert.expect(1);
var actual = _.transform(mapping.aliasMap, function(result, aliases, methodName) {
var actual = _.transform(mapping.alias, function(result, aliases, methodName) {
var func = fp[methodName];
_.each(aliases, function(alias) {
result.push([alias, fp[alias] === func]);
@@ -92,13 +92,13 @@
var funcMethods = [
'curry', 'iteratee', 'memoize', 'over', 'overEvery', 'overSome',
'method', 'methodOf', 'restParam', 'runInContext'
'method', 'methodOf', 'rest', 'runInContext'
];
var exceptions = funcMethods.concat('mixin', 'template'),
expected = _.map(mapping.aryMethodMap[1], _.constant(true));
expected = _.map(mapping.aryMethod[1], _.constant(true));
var actual = _.map(mapping.aryMethodMap[1], function(methodName) {
var actual = _.map(mapping.aryMethod[1], function(methodName) {
var arg = _.includes(funcMethods, methodName) ? _.noop : 1,
result = _.attempt(function() { return fp[methodName](arg); });
@@ -124,9 +124,9 @@
];
var exceptions = _.difference(funcMethods.concat('matchesProperty'), ['cloneDeepWith', 'cloneWith', 'delay']),
expected = _.map(mapping.aryMethodMap[2], _.constant(true));
expected = _.map(mapping.aryMethod[2], _.constant(true));
var actual = _.map(mapping.aryMethodMap[2], function(methodName) {
var actual = _.map(mapping.aryMethod[2], function(methodName) {
var args = _.includes(funcMethods, methodName) ? [methodName == 'curryN' ? 1 : _.noop, _.noop] : [1, []],
result = _.attempt(function() { return fp[methodName](args[0])(args[1]); });
@@ -151,9 +151,9 @@
'pickBy', 'reduce', 'reduceRight', 'transform', 'zipWith'
];
var expected = _.map(mapping.aryMethodMap[3], _.constant(true));
var expected = _.map(mapping.aryMethod[3], _.constant(true));
var actual = _.map(mapping.aryMethodMap[3], function(methodName) {
var actual = _.map(mapping.aryMethod[3], function(methodName) {
var args = _.includes(funcMethods, methodName) ? [_.noop, 0, 1] : [0, 1, []],
result = _.attempt(function() { return fp[methodName](args[0])(args[1])(args[2]); });