summaryrefslogtreecommitdiffstats
path: root/lib/modifiers/config/addPlugin.js
blob: b8d4ea114405f68e426a711cf9f24c2a61bbeea4 (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
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;