mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-11 03:17:49 +00:00
Add fp.assignAll, fp.assignInAll, fp.defaultsAll, fp.defaultsDeepAll, and fp.mergeAll.
This commit is contained in:
@@ -7,6 +7,7 @@ exports.aliasToReal = {
|
|||||||
'entries': 'toPairs',
|
'entries': 'toPairs',
|
||||||
'entriesIn': 'toPairsIn',
|
'entriesIn': 'toPairsIn',
|
||||||
'extend': 'assignIn',
|
'extend': 'assignIn',
|
||||||
|
'extendAll': 'assignInAll',
|
||||||
'extendWith': 'assignInWith',
|
'extendWith': 'assignInWith',
|
||||||
'first': 'head',
|
'first': 'head',
|
||||||
|
|
||||||
@@ -59,11 +60,12 @@ exports.aliasToReal = {
|
|||||||
/** Used to map ary to method names. */
|
/** Used to map ary to method names. */
|
||||||
exports.aryMethod = {
|
exports.aryMethod = {
|
||||||
'1': [
|
'1': [
|
||||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
|
||||||
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
|
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
|
||||||
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
|
'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
|
||||||
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
|
'mergeAll', 'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest',
|
||||||
'uniqueId', 'words'
|
'reverse', 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd',
|
||||||
|
'trimStart', 'uniqueId', 'words'
|
||||||
],
|
],
|
||||||
'2': [
|
'2': [
|
||||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||||
@@ -185,8 +187,13 @@ exports.methodRearg = {
|
|||||||
|
|
||||||
/** Used to map method names to spread configs. */
|
/** Used to map method names to spread configs. */
|
||||||
exports.methodSpread = {
|
exports.methodSpread = {
|
||||||
|
'assignAll': 0,
|
||||||
|
'assignInAll': 0,
|
||||||
|
'defaultsAll': 0,
|
||||||
|
'defaultsDeepAll': 0,
|
||||||
'invokeArgs': 2,
|
'invokeArgs': 2,
|
||||||
'invokeArgsMap': 2,
|
'invokeArgsMap': 2,
|
||||||
|
'mergeAll': 0,
|
||||||
'partial': 1,
|
'partial': 1,
|
||||||
'partialRight': 1,
|
'partialRight': 1,
|
||||||
'without': 1
|
'without': 1
|
||||||
@@ -206,12 +213,17 @@ exports.mutate = {
|
|||||||
},
|
},
|
||||||
'object': {
|
'object': {
|
||||||
'assign': true,
|
'assign': true,
|
||||||
|
'assignAll': true,
|
||||||
'assignIn': true,
|
'assignIn': true,
|
||||||
|
'assignInAll': true,
|
||||||
'assignInWith': true,
|
'assignInWith': true,
|
||||||
'assignWith': true,
|
'assignWith': true,
|
||||||
'defaults': true,
|
'defaults': true,
|
||||||
|
'defaultsAll': true,
|
||||||
'defaultsDeep': true,
|
'defaultsDeep': true,
|
||||||
|
'defaultsDeepAll': true,
|
||||||
'merge': true,
|
'merge': true,
|
||||||
|
'mergeAll': true,
|
||||||
'mergeWith': true
|
'mergeWith': true
|
||||||
},
|
},
|
||||||
'set': {
|
'set': {
|
||||||
@@ -252,8 +264,12 @@ exports.realToAlias = (function() {
|
|||||||
|
|
||||||
/** Used to map method names to other names. */
|
/** Used to map method names to other names. */
|
||||||
exports.remap = {
|
exports.remap = {
|
||||||
|
'assignAll': 'assign',
|
||||||
|
'assignInAll': 'assignIn',
|
||||||
'curryN': 'curry',
|
'curryN': 'curry',
|
||||||
'curryRightN': 'curryRight',
|
'curryRightN': 'curryRight',
|
||||||
|
'defaultsAll': 'defaults',
|
||||||
|
'defaultsDeepAll': 'defaultsDeep',
|
||||||
'findFrom': 'find',
|
'findFrom': 'find',
|
||||||
'findIndexFrom': 'findIndex',
|
'findIndexFrom': 'findIndex',
|
||||||
'findLastFrom': 'findLast',
|
'findLastFrom': 'findLast',
|
||||||
@@ -264,6 +280,7 @@ exports.remap = {
|
|||||||
'invokeArgs': 'invoke',
|
'invokeArgs': 'invoke',
|
||||||
'invokeArgsMap': 'invokeMap',
|
'invokeArgsMap': 'invokeMap',
|
||||||
'lastIndexOfFrom': 'lastIndexOf',
|
'lastIndexOfFrom': 'lastIndexOf',
|
||||||
|
'mergeAll': 'merge',
|
||||||
'padChars': 'pad',
|
'padChars': 'pad',
|
||||||
'padCharsEnd': 'padEnd',
|
'padCharsEnd': 'padEnd',
|
||||||
'padCharsStart': 'padStart',
|
'padCharsStart': 'padStart',
|
||||||
|
|||||||
@@ -728,6 +728,20 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_.each(['assignAll', 'assignInAll', 'defaultsAll', 'defaultsDeepAll', 'mergeAll'], function(methodName) {
|
||||||
|
var func = fp[methodName];
|
||||||
|
|
||||||
|
QUnit.test('`fp.' + methodName + '` should not mutate values', function(assert) {
|
||||||
|
assert.expect(2);
|
||||||
|
|
||||||
|
var objects = [{ 'a': 1 }, { 'b': 2 }],
|
||||||
|
actual = func(objects);
|
||||||
|
|
||||||
|
assert.deepEqual(objects[0], { 'a': 1 });
|
||||||
|
assert.deepEqual(actual, { 'a': 1, 'b': 2 });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('assignWith methods');
|
QUnit.module('assignWith methods');
|
||||||
|
|||||||
Reference in New Issue
Block a user