From e7acb6c0288ac1e046cfdb6810a865052a62c679 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 9 May 2022 20:55:21 +0200 Subject: [PATCH] Getter cannot be spread and make execution invalid --- packages/core/utils/lib/hooks.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/core/utils/lib/hooks.js b/packages/core/utils/lib/hooks.js index b4298bf530..4a227c421b 100644 --- a/packages/core/utils/lib/hooks.js +++ b/packages/core/utils/lib/hooks.js @@ -20,17 +20,19 @@ const createHook = () => { }; return { - get handlers() { + getHandlers() { return state.handlers; }, register(handler) { state.handlers.push(handler); + return this; }, delete(handler) { state.handlers = remove(eq(handler), state.handlers); + return this; }, @@ -49,7 +51,7 @@ const createAsyncSeriesHook = () => ({ ...createHook(), async call(context) { - for (const handler of this.handlers) { + for (const handler of this.getHandlers()) { await handler(context); } }, @@ -66,7 +68,7 @@ const createAsyncSeriesWaterfallHook = () => ({ async call(param) { let res = param; - for (const handler of this.handlers) { + for (const handler of this.getHandlers()) { res = await handler(res); } @@ -83,7 +85,7 @@ const createAsyncParallelHook = () => ({ ...createHook(), async call(context) { - const promises = this.handlers.map(handler => handler(cloneDeep(context))); + const promises = this.getHandlers().map(handler => handler(cloneDeep(context))); return Promise.all(promises); },