Skip to content

Commit

Permalink
fix(hooks): bug where hook firing would fail if there were no listeners
Browse files Browse the repository at this point in the history
  • Loading branch information
julianlam committed Jan 27, 2021
1 parent e7bd038 commit efff8e2
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion public/src/modules/hooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ define('hooks', [], () => {
};
Hooks.on = Hooks.register;

Hooks.hasListeners = hookName => Hooks.loaded[hookName] && Hooks.loaded[hookName].length > 0;
Hooks.hasListeners = hookName => Hooks.loaded[hookName] && Hooks.loaded[hookName].size > 0;

const _onHookError = (e, listener, data) => {
console.warn(`[hooks] Exception encountered in ${listener.name ? listener.name : 'anonymous function'}, stack trace follows.`);
Expand All @@ -20,6 +20,10 @@ define('hooks', [], () => {
};

const _fireFilterHook = (hookName, data) => {
if (!Hooks.hasListeners(hookName)) {
return Promise.resolve(data);
}

const listeners = Array.from(Hooks.loaded[hookName]);
return listeners.reduce((promise, listener) => promise.then((data) => {
try {
Expand All @@ -39,6 +43,10 @@ define('hooks', [], () => {
};

const _fireStaticHook = (hookName, data) => {
if (!Hooks.hasListeners(hookName)) {
return Promise.resolve(data);
}

const listeners = Array.from(Hooks.loaded[hookName]);
return Promise.allSettled(listeners.map((listener) => {
try {
Expand Down

0 comments on commit efff8e2

Please sign in to comment.