You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					29 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					29 lines
				
				1.0 KiB
			| 
											3 years ago
										 | var baseMerge = require('./_baseMerge'), | ||
|  |     isObject = require('./isObject'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source | ||
|  |  * objects into destination objects that are passed thru. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {*} objValue The destination value. | ||
|  |  * @param {*} srcValue The source value. | ||
|  |  * @param {string} key The key of the property to merge. | ||
|  |  * @param {Object} object The parent object of `objValue`. | ||
|  |  * @param {Object} source The parent object of `srcValue`. | ||
|  |  * @param {Object} [stack] Tracks traversed source values and their merged | ||
|  |  *  counterparts. | ||
|  |  * @returns {*} Returns the value to assign. | ||
|  |  */ | ||
|  | function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { | ||
|  |   if (isObject(objValue) && isObject(srcValue)) { | ||
|  |     // Recursively merge objects and arrays (susceptible to call stack limits).
 | ||
|  |     stack.set(srcValue, objValue); | ||
|  |     baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); | ||
|  |     stack['delete'](srcValue); | ||
|  |   } | ||
|  |   return objValue; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = customDefaultsMerge; |