diff --git a/src/static/js/pluginfw/plugins.js b/src/static/js/pluginfw/plugins.js index ebb1a0034..eb0f2d1ff 100644 --- a/src/static/js/pluginfw/plugins.js +++ b/src/static/js/pluginfw/plugins.js @@ -72,8 +72,12 @@ exports.callInit = function () { return Promise.all(p); } -exports.pathNormalization = function (part, hook_fn_name) { - return path.normalize(path.join(path.dirname(exports.plugins[part.plugin].package.path), hook_fn_name)); +exports.pathNormalization = function (part, hook_fn_name, hook_name) { + const parts = hook_fn_name.split(':'); + const functionName = (parts.length > 1) ? parts.pop() : hook_name; + const packageDir = path.dirname(exports.plugins[part.plugin].package.path); + const fileName = path.normalize(path.join(packageDir, parts.join(':'))); + return fileName + ((functionName == null) ? '' : (':' + functionName)); } exports.update = async function () { diff --git a/src/static/js/pluginfw/shared.js b/src/static/js/pluginfw/shared.js index 4df71aee8..a9971e939 100644 --- a/src/static/js/pluginfw/shared.js +++ b/src/static/js/pluginfw/shared.js @@ -39,7 +39,7 @@ function extractHooks(parts, hook_set_name, normalizer) { * a dependency of another plugin! Bah, pesky little details of * npm... */ if (normalizer) { - hook_fn_name = normalizer(part, hook_fn_name); + hook_fn_name = normalizer(part, hook_fn_name, hook_name); } try {