From 92f0bec8a26a71feab214513aa40291733ac9653 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 13 Apr 2022 10:47:49 +0300 Subject: [PATCH] Extract async initialization from sync-injectable Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen --- .../extension-loader/extension-loader.injectable.ts | 12 +++--------- .../initialize-extensions.injectable.ts | 3 ++- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/extensions/extension-loader/extension-loader.injectable.ts b/src/extensions/extension-loader/extension-loader.injectable.ts index 7c617c23f6..d5dd69bc63 100644 --- a/src/extensions/extension-loader/extension-loader.injectable.ts +++ b/src/extensions/extension-loader/extension-loader.injectable.ts @@ -12,21 +12,15 @@ import extensionInstallationCounterInjectable from "./extension-installation-cou const extensionLoaderInjectable = getInjectable({ id: "extension-loader", - instantiate: (di) => { - const extensionLoader = new ExtensionLoader({ + instantiate: (di) => + new ExtensionLoader({ updateExtensionsState: di.inject(updateExtensionsStateInjectable), createExtensionInstance: di.inject(createExtensionInstanceInjectable), extensionRegistrators: di.injectMany(extensionRegistratorInjectionToken), extensionInstallationCounter: di.inject( extensionInstallationCounterInjectable, ), - }); - - // TODO: Missing await - extensionLoader.init(); - - return extensionLoader; - }, + }), }); export default extensionLoaderInjectable; diff --git a/src/main/start-main-application/after-application-is-ready/implementations/initialize-extensions.injectable.ts b/src/main/start-main-application/after-application-is-ready/implementations/initialize-extensions.injectable.ts index 9dfaad2ed1..49f14d158b 100644 --- a/src/main/start-main-application/after-application-is-ready/implementations/initialize-extensions.injectable.ts +++ b/src/main/start-main-application/after-application-is-ready/implementations/initialize-extensions.injectable.ts @@ -23,7 +23,8 @@ const initializeExtensionsInjectable = getInjectable({ run: async () => { logger.info("🧩 Initializing extensions"); - // call after windowManager to see splash earlier + await extensionLoader.init(); + try { const extensions = await extensionDiscovery.load();