1 | import apply from './_apply';
|
2 | import mergeDefaults from './_mergeDefaults';
|
3 | import mergeWith from './mergeWith';
|
4 | import rest from './rest';
|
5 |
|
6 | /**
|
7 | * This method is like `_.defaults` except that it recursively assigns
|
8 | * default properties.
|
9 | *
|
10 | * **Note:** This method mutates `object`.
|
11 | *
|
12 | * @static
|
13 | * @memberOf _
|
14 | * @since 3.10.0
|
15 | * @category Object
|
16 | * @param {Object} object The destination object.
|
17 | * @param {...Object} [sources] The source objects.
|
18 | * @returns {Object} Returns `object`.
|
19 | * @example
|
20 | *
|
21 | * _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } });
|
22 | * // => { 'user': { 'name': 'barney', 'age': 36 } }
|
23 | *
|
24 | */
|
25 | var defaultsDeep = rest(function(args) {
|
26 | args.push(undefined, mergeDefaults);
|
27 | return apply(mergeWith, undefined, args);
|
28 | });
|
29 |
|
30 | export default defaultsDeep;
|