blob: a49e3b91235c028e07b05b8875c38be9d90b6168 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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;
|