From 65045fb0bac29ce435e0683eb3bda9315d4bf0e8 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 21 Mar 2023 08:36:10 -0400 Subject: [PATCH] Simplify logic for extensionInjectable Signed-off-by: Sebastian Malton --- .../extension/extension.injectable.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/core/src/extensions/extension-loader/extension/extension.injectable.ts b/packages/core/src/extensions/extension-loader/extension/extension.injectable.ts index 2e86a1c651..711f9782d4 100644 --- a/packages/core/src/extensions/extension-loader/extension/extension.injectable.ts +++ b/packages/core/src/extensions/extension-loader/extension/extension.injectable.ts @@ -28,20 +28,21 @@ const extensionInjectable = getInjectable({ return { register: () => { - extensionRegistrators.forEach((getInjectablesOfExtension) => { - const injectables = getInjectablesOfExtension(instance); + for (const extensionRegistrator of extensionRegistrators) { + const injectables = extensionRegistrator(instance); - reactionDisposer.push( - // injectables is either an array or a computed array, in which case - // we need to update the registered injectables with a reaction every time they change - reaction( - () => Array.isArray(injectables) ? injectables : injectables.get(), + if (Array.isArray(injectables)) { + injectableDifferencingRegistrator(injectables); + } else { + reactionDisposer.push(reaction( + () => injectables.get(), injectableDifferencingRegistrator, { fireImmediately: true, }, )); - }); + } + } }, deregister: () => {