summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/parse/validateConfig.js2
-rw-r--r--lib/plugins/validateConfig.js2
-rw-r--r--lib/utils/mergeDefaults.js10
-rw-r--r--package.json1
4 files changed, 12 insertions, 3 deletions
diff --git a/lib/parse/validateConfig.js b/lib/parse/validateConfig.js
index 855edc3..21294ac 100644
--- a/lib/parse/validateConfig.js
+++ b/lib/parse/validateConfig.js
@@ -1,9 +1,9 @@
var jsonschema = require('jsonschema');
var jsonSchemaDefaults = require('json-schema-defaults');
-var mergeDefaults = require('merge-defaults');
var schema = require('../constants/configSchema');
var error = require('../utils/error');
+var mergeDefaults = require('../utils/mergeDefaults');
/**
Validate a book.json content
diff --git a/lib/plugins/validateConfig.js b/lib/plugins/validateConfig.js
index 37f3c96..fab1fef 100644
--- a/lib/plugins/validateConfig.js
+++ b/lib/plugins/validateConfig.js
@@ -1,10 +1,10 @@
var Immutable = require('immutable');
var jsonschema = require('jsonschema');
var jsonSchemaDefaults = require('json-schema-defaults');
-var mergeDefaults = require('merge-defaults');
var Promise = require('../utils/promise');
var error = require('../utils/error');
+var mergeDefaults = require('../utils/mergeDefaults');
/**
Validate one plugin for a book and update book's confiration
diff --git a/lib/utils/mergeDefaults.js b/lib/utils/mergeDefaults.js
new file mode 100644
index 0000000..8266b85
--- /dev/null
+++ b/lib/utils/mergeDefaults.js
@@ -0,0 +1,10 @@
+var _ = require('lodash');
+
+module.exports = _.partialRight(_.merge, function recursiveDefaults () {
+ // Ensure dates and arrays are not recursively merged
+ if (_.isArray(arguments[0]) || _.isDate(arguments[0])) {
+ return arguments[0];
+ }
+
+ return _.merge(arguments[0], arguments[1], recursiveDefaults);
+});
diff --git a/package.json b/package.json
index 1ea583a..1ed11b9 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,6 @@
"json-schema-defaults": "0.1.1",
"jsonschema": "1.1.0",
"juice": "1.11.0",
- "merge-defaults": "0.2.1",
"mkdirp": "0.5.1",
"moment": "2.13.0",
"npm": "3.9.2",