diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-06-10 18:34:24 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-06-10 18:34:24 +0200 |
commit | e8ee57be83adf3de2933373e7969c7675bf5372d (patch) | |
tree | 351acf4d6d35fd8e7f7895564394b87440c3ec71 /lib/plugins/loadForBook.js | |
parent | 50a132cb2c0b0666b3b067e32d37e10bfb9e50da (diff) | |
download | gitbook-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.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'); |