diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 10:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-22 10:18:38 +0100 |
commit | 194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch) | |
tree | c50988f32ccf18df93ae7ab40be78e9459642818 /lib/plugins/validateConfig.js | |
parent | 64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff) | |
parent | 16af264360e48e8a833e9efa9ab8d194574dbc70 (diff) | |
download | gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.zip gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.gz gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.bz2 |
Merge pull request #1543 from GitbookIO/dream
React for rendering website with plugins
Diffstat (limited to 'lib/plugins/validateConfig.js')
-rw-r--r-- | lib/plugins/validateConfig.js | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/lib/plugins/validateConfig.js b/lib/plugins/validateConfig.js deleted file mode 100644 index fab1fef..0000000 --- a/lib/plugins/validateConfig.js +++ /dev/null @@ -1,71 +0,0 @@ -var Immutable = require('immutable'); -var jsonschema = require('jsonschema'); -var jsonSchemaDefaults = require('json-schema-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 - - @param {Book} - @param {Plugin} - @return {Book} -*/ -function validatePluginConfig(book, plugin) { - var config = book.getConfig(); - var packageInfos = plugin.getPackage(); - - var configKey = [ - 'pluginsConfig', - plugin.getName() - ].join('.'); - - var pluginConfig = config.getValue(configKey, {}).toJS(); - - var schema = (packageInfos.get('gitbook') || Immutable.Map()).toJS(); - if (!schema) return book; - - // Normalize schema - schema.id = '/' + configKey; - schema.type = 'object'; - - // Validate and throw if invalid - var v = new jsonschema.Validator(); - var result = v.validate(pluginConfig, schema, { - propertyName: configKey - }); - - // Throw error - if (result.errors.length > 0) { - throw new error.ConfigurationError(new Error(result.errors[0].stack)); - } - - // Insert default values - var defaults = jsonSchemaDefaults(schema); - pluginConfig = mergeDefaults(pluginConfig, defaults); - - - // Update configuration - config = config.setValue(configKey, pluginConfig); - - // Return new book - return book.set('config', config); -} - -/** - Validate a book configuration for plugins and - returns an update configuration with default values. - - @param {Book} - @param {OrderedMap<String:Plugin>} - @return {Promise<Book>} -*/ -function validateConfig(book, plugins) { - return Promise.reduce(plugins, function(newBook, plugin) { - return validatePluginConfig(newBook, plugin); - }, book); -} - -module.exports = validateConfig; |