summaryrefslogtreecommitdiffstats
path: root/lib/plugins/loadForBook.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-06-10 18:34:24 +0200
committerSamy Pessé <samypesse@gmail.com>2016-06-10 18:34:24 +0200
commite8ee57be83adf3de2933373e7969c7675bf5372d (patch)
tree351acf4d6d35fd8e7f7895564394b87440c3ec71 /lib/plugins/loadForBook.js
parent50a132cb2c0b0666b3b067e32d37e10bfb9e50da (diff)
downloadgitbook-e8ee57be83adf3de2933373e7969c7675bf5372d.zip
gitbook-e8ee57be83adf3de2933373e7969c7675bf5372d.tar.gz
gitbook-e8ee57be83adf3de2933373e7969c7675bf5372d.tar.bz2
Start fixing order of plugins in dependencies
Diffstat (limited to 'lib/plugins/loadForBook.js')
-rw-r--r--lib/plugins/loadForBook.js31
1 files changed, 28 insertions, 3 deletions
diff --git a/lib/plugins/loadForBook.js b/lib/plugins/loadForBook.js
index 96a0cb5..a3f9dd0 100644
--- a/lib/plugins/loadForBook.js
+++ b/lib/plugins/loadForBook.js
@@ -6,7 +6,8 @@ var loadPlugin = require('./loadPlugin');
/**
- * Load a list of plugins in a book
+ * Load all plugins in a book
+ *
* @param {Book}
* @return {Promise<Map<String:Plugin>}
*/
@@ -19,12 +20,36 @@ function loadForBook(book) {
.then(function(installed) {
// Filter out plugins not listed of first level
// (aka pre-installed plugins)
- installed = installed.filter(function(plugin) {
+ /*installed = installed.filter(function(plugin) {
return (
+ // Plugin is a dependency of another one
plugin.getDepth() > 0 ||
+
+ // Plugin is specified in "book.json"
requirements.has(plugin.getName())
);
- });
+ });*/
+
+ // Insert installed plugins not listed in required
+ var pluginsToLoad = installed.reduce(function(pluginSeq, plugin) {
+ var name = plugin.getName();
+
+ if (requirements.has(name)) {
+ return pluginSeq;
+ }
+
+ var parentName = plugin.getParent();
+
+
+ pluginSeq = pluginSeq.push([
+ name,
+ plugin
+ ]);
+
+ return pluginSeq;
+ }, requirements.entrySeq());
+
+
// Log state
logger.info.ln(installed.size + ' plugins are installed');