summaryrefslogtreecommitdiffstats
path: root/lib/plugins
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-05-27 09:38:23 +0200
committerSamy Pessé <samypesse@gmail.com>2016-05-27 09:38:23 +0200
commitb33a79704b686405e0730ff1baa61281c89b3c08 (patch)
tree8518dd382eab709c1c86c0033ba7e82b864a8dfb /lib/plugins
parent6def174b845d6dd392c2f1ef41e94b025b774bf8 (diff)
downloadgitbook-b33a79704b686405e0730ff1baa61281c89b3c08.zip
gitbook-b33a79704b686405e0730ff1baa61281c89b3c08.tar.gz
gitbook-b33a79704b686405e0730ff1baa61281c89b3c08.tar.bz2
Switch plugin installation and resolveVersion to use PluginDependency instead of Plugin
Diffstat (limited to 'lib/plugins')
-rw-r--r--lib/plugins/installPlugins.js19
-rw-r--r--lib/plugins/resolveVersion.js6
2 files changed, 15 insertions, 10 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;
diff --git a/lib/plugins/resolveVersion.js b/lib/plugins/resolveVersion.js
index a24c8a0..61aef8d 100644
--- a/lib/plugins/resolveVersion.js
+++ b/lib/plugins/resolveVersion.js
@@ -25,16 +25,16 @@ function initNPM() {
}
/**
- Resolve a plugin to a version
+ Resolve a plugin dependency to a version
- @param {Plugin}
+ @param {PluginDependency} plugin
@return {Promise<String>}
*/
function resolveVersion(plugin) {
var npmId = Plugin.nameToNpmID(plugin.getName());
var requiredVersion = plugin.getVersion();
- if (!semver.validRange(requiredVersion)) {
+ if (plugin.isGitDependency()) {
return Promise.resolve(requiredVersion);
}