summaryrefslogtreecommitdiffstats
path: root/lib/modifiers/config/togglePlugin.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-06-07 11:06:53 +0200
committerSamy Pessé <samypesse@gmail.com>2016-06-07 11:06:53 +0200
commit67106e86981852d2d55830a8fca494c7d33eff37 (patch)
treeb477ab3acb2b2db8f333e1e92a61432ae60dfb40 /lib/modifiers/config/togglePlugin.js
parentdc2ab51a8812636143430459fab97027ad60ce23 (diff)
downloadgitbook-67106e86981852d2d55830a8fca494c7d33eff37.zip
gitbook-67106e86981852d2d55830a8fca494c7d33eff37.tar.gz
gitbook-67106e86981852d2d55830a8fca494c7d33eff37.tar.bz2
Improve plugins config modifier
Diffstat (limited to 'lib/modifiers/config/togglePlugin.js')
-rw-r--r--lib/modifiers/config/togglePlugin.js14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/modifiers/config/togglePlugin.js b/lib/modifiers/config/togglePlugin.js
index 0cc4932..a49e3b9 100644
--- a/lib/modifiers/config/togglePlugin.js
+++ b/lib/modifiers/config/togglePlugin.js
@@ -1,16 +1,24 @@
+var PluginDependency = require('../../models/pluginDependency');
+var hasPlugin = require('./hasPlugin');
+var isDefaultPlugin = require('./isDefaultPlugin');
/**
* Enable/disable a plugin dependency
* @param {Config} config
- * @param {String} plugin
+ * @param {String} pluginName
* @param {Boolean} state (optional)
* @return {Config}
*/
-function togglePlugin(config, plugin, state) {
+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() === plugin) {
+ if (dep.getName() === pluginName) {
return dep.toggle(state);
}