diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/node_modules/async/node_modules/lodash/_mergeDefaults.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongoose/node_modules/async/node_modules/lodash/_mergeDefaults.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/node_modules/async/node_modules/lodash/_mergeDefaults.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/node_modules/async/node_modules/lodash/_mergeDefaults.js new file mode 100644 index 0000000..9888f0e --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/node_modules/async/node_modules/lodash/_mergeDefaults.js @@ -0,0 +1,27 @@ +var baseMerge = require('./_baseMerge'), + isObject = require('./isObject'); + +/** + * Used by `_.defaultsDeep` to customize its `_.merge` use. + * + * @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 mergeDefaults(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, mergeDefaults, stack); + stack['delete'](srcValue); + } + return objValue; +} + +module.exports = mergeDefaults; |