summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/lodash/mergeWith.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/lodash/mergeWith.js')
-rw-r--r--tools/eslint/node_modules/lodash/mergeWith.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/lodash/mergeWith.js b/tools/eslint/node_modules/lodash/mergeWith.js
new file mode 100644
index 0000000000..c41390c728
--- /dev/null
+++ b/tools/eslint/node_modules/lodash/mergeWith.js
@@ -0,0 +1,45 @@
+var baseMerge = require('./_baseMerge'),
+ createAssigner = require('./_createAssigner');
+
+/**
+ * This method is like `_.merge` except that it accepts `customizer` which
+ * is invoked to produce the merged values of the destination and source
+ * properties. If `customizer` returns `undefined` merging is handled by the
+ * method instead. The `customizer` is invoked with seven arguments:
+ * (objValue, srcValue, key, object, source, stack).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} sources The source objects.
+ * @param {Function} customizer The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * function customizer(objValue, srcValue) {
+ * if (_.isArray(objValue)) {
+ * return objValue.concat(srcValue);
+ * }
+ * }
+ *
+ * var object = {
+ * 'fruits': ['apple'],
+ * 'vegetables': ['beet']
+ * };
+ *
+ * var other = {
+ * 'fruits': ['banana'],
+ * 'vegetables': ['carrot']
+ * };
+ *
+ * _.mergeWith(object, other, customizer);
+ * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }
+ */
+var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
+ baseMerge(object, source, srcIndex, customizer);
+});
+
+module.exports = mergeWith;