diff options
Diffstat (limited to 'lib/output')
-rw-r--r-- | lib/output/callHook.js | 12 | ||||
-rw-r--r-- | lib/output/callPageHook.js | 6 | ||||
-rw-r--r-- | lib/output/generateBook.js | 4 |
3 files changed, 15 insertions, 7 deletions
diff --git a/lib/output/callHook.js b/lib/output/callHook.js index 8d34bdc..1ff1a41 100644 --- a/lib/output/callHook.js +++ b/lib/output/callHook.js @@ -1,4 +1,5 @@ var Promise = require('../utils/promise'); +var Api = require('../api'); function defaultGetArgument() { return undefined; @@ -26,7 +27,13 @@ function callHook(name, getArgument, handleResult, output) { logger.debug.ln('calling hook "' + name + '"'); + // Create the JS context for plugins + var context = Api.encodeGlobal(output); + + // Get the arguments return Promise(getArgument(output)) + + // Call the hooks in serie .then(function(arg) { return Promise.reduce(plugins, function(prev, plugin) { var hook = plugin.getHook(name); @@ -34,10 +41,13 @@ function callHook(name, getArgument, handleResult, output) { return prev; } - return hook(prev); + return hook.call(context, prev); }, arg); }) + + // Handle final result .then(function(result) { + output = Api.decodeGlobal(output, context); return handleResult(output, result); }); } diff --git a/lib/output/callPageHook.js b/lib/output/callPageHook.js index 6f6bcbb..0582da9 100644 --- a/lib/output/callPageHook.js +++ b/lib/output/callPageHook.js @@ -12,9 +12,7 @@ var Promise = require('../utils/promise'); @return {Promise<Page>} */ function callPageHook(name, output, page) { - return Promise(page); - - /*return callHook( + return callHook( name, function(out) { @@ -26,7 +24,7 @@ function callPageHook(name, output, page) { }, output - );*/ + ); } module.exports = callPageHook; diff --git a/lib/output/generateBook.js b/lib/output/generateBook.js index 1fe75fd..ab07e41 100644 --- a/lib/output/generateBook.js +++ b/lib/output/generateBook.js @@ -105,7 +105,7 @@ function generateBook(generator, book, options) { return generator.onFinish(output); }) - /*.then(callHook.bind(null, + .then(callHook.bind(null, 'finish', function(output) { return {}; @@ -114,7 +114,7 @@ function generateBook(generator, book, options) { return output; } ) - )*/ + ) .then(function(output) { var logger = output.getLogger(); |