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/modifiers/config | |
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/modifiers/config')
-rw-r--r-- | lib/modifiers/config/__tests__/addPlugin.js | 32 | ||||
-rw-r--r-- | lib/modifiers/config/__tests__/removePlugin.js | 33 | ||||
-rw-r--r-- | lib/modifiers/config/__tests__/togglePlugin.js | 28 | ||||
-rw-r--r-- | lib/modifiers/config/addPlugin.js | 25 | ||||
-rw-r--r-- | lib/modifiers/config/editPlugin.js | 13 | ||||
-rw-r--r-- | lib/modifiers/config/getPluginConfig.js | 20 | ||||
-rw-r--r-- | lib/modifiers/config/hasPlugin.js | 15 | ||||
-rw-r--r-- | lib/modifiers/config/index.js | 10 | ||||
-rw-r--r-- | lib/modifiers/config/isDefaultPlugin.js | 14 | ||||
-rw-r--r-- | lib/modifiers/config/removePlugin.js | 25 | ||||
-rw-r--r-- | lib/modifiers/config/togglePlugin.js | 31 |
11 files changed, 0 insertions, 246 deletions
diff --git a/lib/modifiers/config/__tests__/addPlugin.js b/lib/modifiers/config/__tests__/addPlugin.js deleted file mode 100644 index 61082c9..0000000 --- a/lib/modifiers/config/__tests__/addPlugin.js +++ /dev/null @@ -1,32 +0,0 @@ -var addPlugin = require('../addPlugin'); -var Config = require('../../../models/config'); - -describe('addPlugin', function() { - var config = Config.createWithValues({ - plugins: ['hello', 'world', '-disabled'] - }); - - it('should have correct state of dependencies', function() { - var disabledDep = config.getPluginDependency('disabled'); - - expect(disabledDep).toBeDefined(); - expect(disabledDep.getVersion()).toEqual('*'); - expect(disabledDep.isEnabled()).toBeFalsy(); - }); - - it('should add the plugin to the list', function() { - var newConfig = addPlugin(config, 'test'); - - var testDep = newConfig.getPluginDependency('test'); - expect(testDep).toBeDefined(); - expect(testDep.getVersion()).toEqual('*'); - expect(testDep.isEnabled()).toBeTruthy(); - - var disabledDep = newConfig.getPluginDependency('disabled'); - expect(disabledDep).toBeDefined(); - expect(disabledDep.getVersion()).toEqual('*'); - expect(disabledDep.isEnabled()).toBeFalsy(); - }); -}); - - diff --git a/lib/modifiers/config/__tests__/removePlugin.js b/lib/modifiers/config/__tests__/removePlugin.js deleted file mode 100644 index 253cc39..0000000 --- a/lib/modifiers/config/__tests__/removePlugin.js +++ /dev/null @@ -1,33 +0,0 @@ -var removePlugin = require('../removePlugin'); -var Config = require('../../../models/config'); - -describe('removePlugin', function() { - var config = Config.createWithValues({ - plugins: ['hello', 'world', '-disabled'] - }); - - it('should remove the plugin from the list', function() { - var newConfig = removePlugin(config, 'hello'); - - var testDep = newConfig.getPluginDependency('hello'); - expect(testDep).toNotBeDefined(); - }); - - it('should remove the disabled plugin from the list', function() { - var newConfig = removePlugin(config, 'disabled'); - - var testDep = newConfig.getPluginDependency('disabled'); - expect(testDep).toNotBeDefined(); - }); - - it('should disable default plugin', function() { - var newConfig = removePlugin(config, 'search'); - - var disabledDep = newConfig.getPluginDependency('search'); - expect(disabledDep).toBeDefined(); - expect(disabledDep.getVersion()).toEqual('*'); - expect(disabledDep.isEnabled()).toBeFalsy(); - }); -}); - - diff --git a/lib/modifiers/config/__tests__/togglePlugin.js b/lib/modifiers/config/__tests__/togglePlugin.js deleted file mode 100644 index 4127853..0000000 --- a/lib/modifiers/config/__tests__/togglePlugin.js +++ /dev/null @@ -1,28 +0,0 @@ -var togglePlugin = require('../togglePlugin'); -var Config = require('../../../models/config'); - -describe('togglePlugin', function() { - var config = Config.createWithValues({ - plugins: ['hello', 'world', '-disabled'] - }); - - it('should enable plugin', function() { - var newConfig = togglePlugin(config, 'disabled'); - - var testDep = newConfig.getPluginDependency('disabled'); - expect(testDep).toBeDefined(); - expect(testDep.getVersion()).toEqual('*'); - expect(testDep.isEnabled()).toBeTruthy(); - }); - - it('should disable plugin', function() { - var newConfig = togglePlugin(config, 'world'); - - var testDep = newConfig.getPluginDependency('world'); - expect(testDep).toBeDefined(); - expect(testDep.getVersion()).toEqual('*'); - expect(testDep.isEnabled()).toBeFalsy(); - }); -}); - - diff --git a/lib/modifiers/config/addPlugin.js b/lib/modifiers/config/addPlugin.js deleted file mode 100644 index b8d4ea1..0000000 --- a/lib/modifiers/config/addPlugin.js +++ /dev/null @@ -1,25 +0,0 @@ -var PluginDependency = require('../../models/pluginDependency'); -var togglePlugin = require('./togglePlugin'); -var isDefaultPlugin = require('./isDefaultPlugin'); - -/** - * Add a plugin to a book's configuration - * @param {Config} config - * @param {String} pluginName - * @param {String} version (optional) - * @return {Config} - */ -function addPlugin(config, pluginName, version) { - // For default plugin, we only ensure it is enabled - if (isDefaultPlugin(pluginName, version)) { - return togglePlugin(config, pluginName, true); - } - - var deps = config.getPluginDependencies(); - var dep = PluginDependency.create(pluginName, version); - - deps = deps.push(dep); - return config.setPluginDependencies(deps); -} - -module.exports = addPlugin; diff --git a/lib/modifiers/config/editPlugin.js b/lib/modifiers/config/editPlugin.js deleted file mode 100644 index a792acd..0000000 --- a/lib/modifiers/config/editPlugin.js +++ /dev/null @@ -1,13 +0,0 @@ - -/** - * Edit configuration of a plugin - * @param {Config} config - * @param {String} plugin - * @param {Object} pluginConfig - * @return {Config} - */ -function editPlugin(config, pluginName, pluginConfig) { - return config.setValue('pluginsConfig.'+pluginName, pluginConfig); -} - -module.exports = editPlugin; diff --git a/lib/modifiers/config/getPluginConfig.js b/lib/modifiers/config/getPluginConfig.js deleted file mode 100644 index ae76de8..0000000 --- a/lib/modifiers/config/getPluginConfig.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Return the configuration for a plugin - * @param {Config} config - * @param {String} pluginName - * @return {Object} - */ -function getPluginConfig(config, pluginName) { - var pluginsConfig = config.getValues().get('pluginsConfig'); - if (pluginsConfig === undefined) { - return {}; - } - var pluginConf = pluginsConfig.get(pluginName); - if (pluginConf === undefined) { - return {}; - } else { - return pluginConf.toJS(); - } -} - -module.exports = getPluginConfig; diff --git a/lib/modifiers/config/hasPlugin.js b/lib/modifiers/config/hasPlugin.js deleted file mode 100644 index 9aab4f2..0000000 --- a/lib/modifiers/config/hasPlugin.js +++ /dev/null @@ -1,15 +0,0 @@ - -/** - * Test if a plugin is listed - * @param { {List<PluginDependency}} deps - * @param {String} plugin - * @param {String} version - * @return {Boolean} - */ -function hasPlugin(deps, pluginName, version) { - return !!deps.find(function(dep) { - return dep.getName() === pluginName && (!version || dep.getVersion() === version); - }); -} - -module.exports = hasPlugin; diff --git a/lib/modifiers/config/index.js b/lib/modifiers/config/index.js deleted file mode 100644 index b3de0b0..0000000 --- a/lib/modifiers/config/index.js +++ /dev/null @@ -1,10 +0,0 @@ - -module.exports = { - addPlugin: require('./addPlugin'), - removePlugin: require('./removePlugin'), - togglePlugin: require('./togglePlugin'), - editPlugin: require('./editPlugin'), - hasPlugin: require('./hasPlugin'), - getPluginConfig: require('./getPluginConfig'), - isDefaultPlugin: require('./isDefaultPlugin') -}; diff --git a/lib/modifiers/config/isDefaultPlugin.js b/lib/modifiers/config/isDefaultPlugin.js deleted file mode 100644 index 63a141d..0000000 --- a/lib/modifiers/config/isDefaultPlugin.js +++ /dev/null @@ -1,14 +0,0 @@ -var DEFAULT_PLUGINS = require('../../constants/defaultPlugins'); -var hasPlugin = require('./hasPlugin'); - -/** - * Test if a plugin is a default one - * @param {String} plugin - * @param {String} version - * @return {Boolean} - */ -function isDefaultPlugin(pluginName, version) { - return hasPlugin(DEFAULT_PLUGINS, pluginName, version); -} - -module.exports = isDefaultPlugin; diff --git a/lib/modifiers/config/removePlugin.js b/lib/modifiers/config/removePlugin.js deleted file mode 100644 index ec06d1e..0000000 --- a/lib/modifiers/config/removePlugin.js +++ /dev/null @@ -1,25 +0,0 @@ -var togglePlugin = require('./togglePlugin'); -var isDefaultPlugin = require('./isDefaultPlugin'); - -/** - * Remove a plugin from a book's configuration - * @param {Config} config - * @param {String} plugin - * @return {Config} - */ -function removePlugin(config, pluginName) { - var deps = config.getPluginDependencies(); - - // For default plugin, we have to disable it instead of removing from the list - if (isDefaultPlugin(pluginName)) { - return togglePlugin(config, pluginName, false); - } - - // Remove the dependency from the list - deps = deps.filterNot(function(dep) { - return dep.getName() === pluginName; - }); - return config.setPluginDependencies(deps); -} - -module.exports = removePlugin; diff --git a/lib/modifiers/config/togglePlugin.js b/lib/modifiers/config/togglePlugin.js deleted file mode 100644 index a49e3b9..0000000 --- a/lib/modifiers/config/togglePlugin.js +++ /dev/null @@ -1,31 +0,0 @@ -var PluginDependency = require('../../models/pluginDependency'); -var hasPlugin = require('./hasPlugin'); -var isDefaultPlugin = require('./isDefaultPlugin'); - -/** - * Enable/disable a plugin dependency - * @param {Config} config - * @param {String} pluginName - * @param {Boolean} state (optional) - * @return {Config} - */ -function togglePlugin(config, pluginName, state) { - var deps = config.getPluginDependencies(); - - // For default plugin, we should ensure it's listed first - if (isDefaultPlugin(pluginName) && !hasPlugin(deps, pluginName)) { - deps = deps.push(PluginDependency.create(pluginName)); - } - - deps = deps.map(function(dep) { - if (dep.getName() === pluginName) { - return dep.toggle(state); - } - - return dep; - }); - - return config.setPluginDependencies(deps); -} - -module.exports = togglePlugin; |