diff options
Diffstat (limited to 'lib/output/preparePlugins.js')
-rw-r--r-- | lib/output/preparePlugins.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/output/preparePlugins.js b/lib/output/preparePlugins.js new file mode 100644 index 0000000..54837ed --- /dev/null +++ b/lib/output/preparePlugins.js @@ -0,0 +1,36 @@ +var Plugins = require('../plugins'); +var Promise = require('../utils/promise'); + +/** + Load and setup plugins + + @param {Output} + @return {Promise<Output>} +*/ +function preparePlugins(output) { + var book = output.getBook(); + + return Promise() + + // Only load plugins for main book + .then(function() { + if (book.isLanguageBook()) { + return output.getPlugins(); + } else { + return Plugins.loadForBook(book); + } + }) + + // Update book's configuration using the plugins + .then(function(plugins) { + return Plugins.validateConfig(book, plugins) + .then(function(newBook) { + return output.merge({ + book: newBook, + plugins: plugins + }); + }); + }); +} + +module.exports = preparePlugins; |