diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-06-10 22:04:19 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-06-10 22:04:19 +0200 |
commit | 94a4310c1e4b9ee71def9cbd9efd8a4c491f4444 (patch) | |
tree | 5f221cb283e5f4591a3764112569ee62220e6da2 /lib/plugins/listDependencies.js | |
parent | e8ee57be83adf3de2933373e7969c7675bf5372d (diff) | |
download | gitbook-94a4310c1e4b9ee71def9cbd9efd8a4c491f4444.zip gitbook-94a4310c1e4b9ee71def9cbd9efd8a4c491f4444.tar.gz gitbook-94a4310c1e4b9ee71def9cbd9efd8a4c491f4444.tar.bz2 |
Adapt Plugins.loadForBook to use correct order
Diffstat (limited to 'lib/plugins/listDependencies.js')
-rw-r--r-- | lib/plugins/listDependencies.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/plugins/listDependencies.js b/lib/plugins/listDependencies.js new file mode 100644 index 0000000..d52eaa9 --- /dev/null +++ b/lib/plugins/listDependencies.js @@ -0,0 +1,33 @@ +var DEFAULT_PLUGINS = require('../constants/defaultPlugins'); +var sortDependencies = require('./sortDependencies'); + +/** + * List all dependencies for a book, including default plugins. + * It returns a concat with default plugins and remove disabled ones. + * + * @param {List<PluginDependency>} deps + * @return {List<PluginDependency>} + */ +function listDependencies(deps) { + // Extract list of plugins to disable (starting with -) + var toRemove = deps + .filter(function(plugin) { + return !plugin.isEnabled(); + }) + .map(function(plugin) { + return plugin.getName(); + }); + + // Concat with default plugins + deps = deps.concat(DEFAULT_PLUGINS); + + // Remove plugins + deps = deps.filterNot(function(plugin) { + return toRemove.includes(plugin.getName()); + }); + + // Sort + return sortDependencies(deps); +} + +module.exports = listDependencies; |