diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-06-07 12:06:29 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-06-07 12:06:29 +0200 |
commit | 1cc48fa314782312883af00cf64a56929b62f057 (patch) | |
tree | 5ffdc5418f1775f6e1c61d28f3e5b3f4f23e46ca /lib/utils/mergeDefaults.js | |
parent | b63b5574d33927436ec0584d054d3bb2e78f4597 (diff) | |
download | gitbook-1cc48fa314782312883af00cf64a56929b62f057.zip gitbook-1cc48fa314782312883af00cf64a56929b62f057.tar.gz gitbook-1cc48fa314782312883af00cf64a56929b62f057.tar.bz2 |
Use Immutable instead of lodash for mergeDefaults
Diffstat (limited to 'lib/utils/mergeDefaults.js')
-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; |