diff options
Diffstat (limited to 'lib/utils')
-rw-r--r-- | lib/utils/mergeDefaults.js | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/utils/mergeDefaults.js b/lib/utils/mergeDefaults.js index 8266b85..c9db640 100644 --- a/lib/utils/mergeDefaults.js +++ b/lib/utils/mergeDefaults.js @@ -1,10 +1,14 @@ var _ = require('lodash'); -module.exports = _.partialRight(_.merge, function recursiveDefaults () { +function customizer(objValue, srcValue) { // Ensure dates and arrays are not recursively merged - if (_.isArray(arguments[0]) || _.isDate(arguments[0])) { - return arguments[0]; + if (!_.isObject(objValue)) { + return objValue; } - return _.merge(arguments[0], arguments[1], recursiveDefaults); -}); + return mergeDefaults(objValue, srcValue); +} + +var mergeDefaults = _.partialRight(_.mergeWith, customizer); + +module.exports = mergeDefaults; |