diff options
Diffstat (limited to 'lib/plugins/loadForBook.js')
-rw-r--r-- | lib/plugins/loadForBook.js | 31 |
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'); |