summaryrefslogtreecommitdiffstats
path: root/lib/utils/mergeDefaults.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-06-07 11:40:54 +0200
committerSamy Pessé <samypesse@gmail.com>2016-06-07 11:40:54 +0200
commitb63b5574d33927436ec0584d054d3bb2e78f4597 (patch)
tree32bab15b97293f3e35c169348640ded410621bbe /lib/utils/mergeDefaults.js
parent67106e86981852d2d55830a8fca494c7d33eff37 (diff)
downloadgitbook-b63b5574d33927436ec0584d054d3bb2e78f4597.zip
gitbook-b63b5574d33927436ec0584d054d3bb2e78f4597.tar.gz
gitbook-b63b5574d33927436ec0584d054d3bb2e78f4597.tar.bz2
Only merge objects in mergeDefaults
Diffstat (limited to 'lib/utils/mergeDefaults.js')
-rw-r--r--lib/utils/mergeDefaults.js14
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;