diff options
Diffstat (limited to 'lib/modifiers/config/togglePlugin.js')
-rw-r--r-- | lib/modifiers/config/togglePlugin.js | 14 |
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); } |