diff options
Diffstat (limited to 'lib/utils')
-rw-r--r-- | lib/utils/mergeDefaults.js | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/utils/mergeDefaults.js b/lib/utils/mergeDefaults.js index c9db640..47a374b 100644 --- a/lib/utils/mergeDefaults.js +++ b/lib/utils/mergeDefaults.js @@ -1,14 +1,16 @@ -var _ = require('lodash'); +var Immutable = require('immutable'); -function customizer(objValue, srcValue) { - // Ensure dates and arrays are not recursively merged - if (!_.isObject(objValue)) { - return objValue; - } +/** + * Merge + * @param {Object|Map} obj + * @param {Object|Map} src + * @return {Object} + */ +function mergeDefaults(obj, src) { + var objValue = Immutable.fromJS(obj); + var srcValue = Immutable.fromJS(src); - return mergeDefaults(objValue, srcValue); + return srcValue.mergeDeep(objValue).toJS(); } -var mergeDefaults = _.partialRight(_.mergeWith, customizer); - module.exports = mergeDefaults; |