summaryrefslogtreecommitdiffstats
path: root/lib/plugins/installPlugins.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/installPlugins.js')
-rw-r--r--lib/plugins/installPlugins.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/plugins/installPlugins.js b/lib/plugins/installPlugins.js
index ed9316c..3137a0a 100644
--- a/lib/plugins/installPlugins.js
+++ b/lib/plugins/installPlugins.js
@@ -3,14 +3,13 @@ var npmi = require('npmi');
var pkg = require('../../package.json');
var DEFAULT_PLUGINS = require('../constants/defaultPlugins');
var Promise = require('../utils/promise');
-var listForBook = require('./listForBook');
var resolveVersion = require('./resolveVersion');
/**
Install a plugin for a book
@param {Book}
- @param {Plugin}
+ @param {PluginDependency}
@return {Promise}
*/
function installPlugin(book, plugin) {
@@ -52,18 +51,23 @@ function installPlugin(book, plugin) {
Install plugin requirements for a book
@param {Book}
- @return {Promise}
+ @return {Promise<Number>}
*/
function installPlugins(book) {
var logger = book.getLogger();
- var plugins = listForBook(book);
+ var config = book.getConfig();
+ var plugins = config.getPluginDependencies();
// Remove default plugins
// (only if version is same as installed)
plugins = plugins.filterNot(function(plugin) {
return (
- DEFAULT_PLUGINS.includes(plugin.getName()) &&
- plugin.getVersion() === pkg.dependencies[plugin.getNpmID()]
+ // Disabled plugin
+ !plugin.isEnabled() ||
+
+ // Or default one installed in GitBook itself
+ (DEFAULT_PLUGINS.includes(plugin.getName()) &&
+ plugin.getVersion() === pkg.dependencies[plugin.getNpmID()])
);
});
@@ -76,7 +80,8 @@ function installPlugins(book) {
return Promise.forEach(plugins, function(plugin) {
return installPlugin(book, plugin);
- });
+ })
+ .thenResolve(plugins.size);
}
module.exports = installPlugins;