summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-06-06 22:04:13 +0200
committerSamy Pesse <samypesse@gmail.com>2016-06-06 22:04:13 +0200
commitaa66a4f928122856370d6d8579b9fd3d15fcccad (patch)
tree59ff1b5f8a0ac7fff6ed33c14a9f2ce81022263a /lib
parent23010fa54a3360a035f91b5848916e294dea2e24 (diff)
downloadgitbook-aa66a4f928122856370d6d8579b9fd3d15fcccad.zip
gitbook-aa66a4f928122856370d6d8579b9fd3d15fcccad.tar.gz
gitbook-aa66a4f928122856370d6d8579b9fd3d15fcccad.tar.bz2
Expose DEFAULT_PLUGINS as a list of PluginDependency
Diffstat (limited to 'lib')
-rw-r--r--lib/browser.js5
-rw-r--r--lib/constants/defaultPlugins.js23
-rw-r--r--lib/plugins/installPlugins.js10
-rw-r--r--lib/plugins/listAll.js14
4 files changed, 32 insertions, 20 deletions
diff --git a/lib/browser.js b/lib/browser.js
index 9deb001..bb84044 100644
--- a/lib/browser.js
+++ b/lib/browser.js
@@ -8,6 +8,8 @@ module.exports = {
FS: require('./models/fs'),
Summary: require('./models/summary'),
Glossary: require('./models/glossary'),
+ Config: require('./models/config'),
+ PluginDependency: require('./models/pluginDependency'),
// Modifiers
SummaryModifier: Modifiers.Summary,
@@ -15,5 +17,6 @@ module.exports = {
// Constants
CONFIG_FILES: require('./constants/configFiles.js'),
- IGNORE_FILES: require('./constants/ignoreFiles.js')
+ IGNORE_FILES: require('./constants/ignoreFiles.js'),
+ DEFAULT_PLUGINS: require('./constants/defaultPlugins')
};
diff --git a/lib/constants/defaultPlugins.js b/lib/constants/defaultPlugins.js
index e6ea2bb..6d15971 100644
--- a/lib/constants/defaultPlugins.js
+++ b/lib/constants/defaultPlugins.js
@@ -1,9 +1,24 @@
var Immutable = require('immutable');
+var PluginDependency = require('../models/pluginDependency');
+
+var pkg = require('../../package.json');
+
+/**
+ * Create a PluginDependency from a dependency of gitbook
+ * @param {String} pluginName
+ * @return {PluginDependency}
+ */
+function createFromDependency(pluginName) {
+ var npmID = PluginDependency.nameToNpmID(pluginName);
+ var version = pkg.dependencies[npmID];
+
+ return PluginDependency.create(pluginName, version);
+}
/*
- List of default plugins for all books,
- default plugins should be installed in node dependencies of GitBook
-*/
+ * List of default plugins for all books,
+ * default plugins should be installed in node dependencies of GitBook
+ */
module.exports = Immutable.List([
'highlight',
'search',
@@ -11,4 +26,4 @@ module.exports = Immutable.List([
'sharing',
'fontsettings',
'theme-default'
-]);
+]).map(createFromDependency);
diff --git a/lib/plugins/installPlugins.js b/lib/plugins/installPlugins.js
index a0365b3..307c41e 100644
--- a/lib/plugins/installPlugins.js
+++ b/lib/plugins/installPlugins.js
@@ -1,11 +1,9 @@
var npmi = require('npmi');
-var pkg = require('../../package.json');
var DEFAULT_PLUGINS = require('../constants/defaultPlugins');
var Promise = require('../utils/promise');
var installPlugin = require('./installPlugin');
-
/**
Install plugin requirements for a book
@@ -20,13 +18,17 @@ function installPlugins(book) {
// Remove default plugins
// (only if version is same as installed)
plugins = plugins.filterNot(function(plugin) {
+ var dependency = DEFAULT_PLUGINS.find(function(dep) {
+ return dep.getName() === plugin.getName();
+ });
+
return (
// Disabled plugin
!plugin.isEnabled() ||
// Or default one installed in GitBook itself
- (DEFAULT_PLUGINS.includes(plugin.getName()) &&
- plugin.getVersion() === pkg.dependencies[plugin.getNpmID()])
+ (dependency &&
+ plugin.getVersion() === dependency.getVersion())
);
});
diff --git a/lib/plugins/listAll.js b/lib/plugins/listAll.js
index 9b2a96b..cbeb06b 100644
--- a/lib/plugins/listAll.js
+++ b/lib/plugins/listAll.js
@@ -1,7 +1,6 @@
var Immutable = require('immutable');
var Plugin = require('../models/plugin');
-var pkg = require('../../package.json');
var DEFAULT_PLUGINS = require('../constants/defaultPlugins');
/**
@@ -20,6 +19,9 @@ function listAll(deps) {
return plugin.getName();
});
+ // Concat with default plugins
+ deps = DEFAULT_PLUGINS.concat(deps);
+
// Convert to an ordered map of Plugin
var plugins = deps
.map(function(dep) {
@@ -29,16 +31,6 @@ function listAll(deps) {
});
plugins = Immutable.OrderedMap(plugins);
- // Append default plugins
- DEFAULT_PLUGINS.forEach(function(pluginName) {
- if (plugins.has(pluginName)) return;
-
- plugins = plugins.set(pluginName, new Plugin({
- name: pluginName,
- version: pkg.dependencies[Plugin.nameToNpmID(pluginName)]
- }));
- });
-
// Remove plugins
plugins = plugins.filterNot(function(plugin, name) {
return toRemove.includes(name);