summaryrefslogtreecommitdiffstats
path: root/lib/modifiers/config/removePlugin.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-05-02 13:41:04 +0200
committerSamy Pessé <samypesse@gmail.com>2016-05-02 13:41:07 +0200
commit718e32773a43abf1ee98cbe39f4acf9f77982f46 (patch)
treee30c5a2988870ad454ce717f8b822d616ce59632 /lib/modifiers/config/removePlugin.js
parentfb75d5d3ee01a50956e91424540aefcf75e8f3c3 (diff)
downloadgitbook-718e32773a43abf1ee98cbe39f4acf9f77982f46.zip
gitbook-718e32773a43abf1ee98cbe39f4acf9f77982f46.tar.gz
gitbook-718e32773a43abf1ee98cbe39f4acf9f77982f46.tar.bz2
Add method removePlugin to ConfigModifier
Diffstat (limited to 'lib/modifiers/config/removePlugin.js')
-rw-r--r--lib/modifiers/config/removePlugin.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/modifiers/config/removePlugin.js b/lib/modifiers/config/removePlugin.js
new file mode 100644
index 0000000..8c58f16
--- /dev/null
+++ b/lib/modifiers/config/removePlugin.js
@@ -0,0 +1,24 @@
+
+/**
+ Remove a plugin from a book's configuration
+
+ @param {Book} book
+ @param {String} plugin
+ @return {Book}
+*/
+function removePlugin(book, pluginName) {
+ var config = book.getConfig();
+ var plugins = config.getValue('plugins', []);
+
+ // Find index of this plugin
+ var index = plugins.findIndex(function(plugin) {
+ return plugin === pluginName;
+ });
+
+ plugins = plugins.delete(index);
+ config = config.setValue('plugins', plugins);
+
+ return book.setConfig(config);
+}
+
+module.exports = removePlugin;