diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/parse/validateConfig.js | 2 | ||||
-rw-r--r-- | lib/plugins/validateConfig.js | 2 | ||||
-rw-r--r-- | lib/utils/mergeDefaults.js | 10 |
3 files changed, 12 insertions, 2 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); +}); |