summaryrefslogtreecommitdiffstats
path: root/lib/plugins/loadForBook.js
diff options
context:
space:
mode:
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');