From 65f6630722d07b2aa7f65c9d1abc270293fe5ffb Mon Sep 17 00:00:00 2001 From: Baris Usakli <barisusakli@gmail.com> Date: Tue, 15 Jan 2019 12:55:53 -0500 Subject: [PATCH] add new hook action:plugins.firehook --- src/plugins/hooks.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index d5f268a80e..b64247be53 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -84,19 +84,31 @@ module.exports = function (Plugins) { Plugins.fireHook = function (hook, params, callback) { callback = typeof callback === 'function' ? callback : function () {}; - + function done(err, result) { + if (err) { + return callback(err); + } + if (hook !== 'action:plugins.firehook') { + Plugins.fireHook('action:plugins.firehook', { hook: hook, params: params }); + } + if (result) { + callback(null, result); + } else { + callback(); + } + } var hookList = Plugins.loadedHooks[hook]; var hookType = hook.split(':')[0]; winston.verbose('[plugins/fireHook]', hook); switch (hookType) { case 'filter': - fireFilterHook(hook, hookList, params, callback); + fireFilterHook(hook, hookList, params, done); break; case 'action': - fireActionHook(hook, hookList, params, callback); + fireActionHook(hook, hookList, params, done); break; case 'static': - fireStaticHook(hook, hookList, params, callback); + fireStaticHook(hook, hookList, params, done); break; default: winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook);