diff --git a/packages/core/src/features/extensions/stopping/main/stop-all.injectable.ts b/packages/core/src/features/extensions/stopping/main/stop-all.injectable.ts index ce3d69d723..8c2b7b68f3 100644 --- a/packages/core/src/features/extensions/stopping/main/stop-all.injectable.ts +++ b/packages/core/src/features/extensions/stopping/main/stop-all.injectable.ts @@ -5,21 +5,23 @@ import { getInjectable } from "@ogre-tools/injectable"; import extensionInjectable from "../../../../extensions/extension-loader/extension/extension.injectable"; import extensionsInjectable from "../../../../extensions/extensions.injectable"; +import { onQuitOfBackEndInjectionToken } from "../../../../main/start-main-application/runnable-tokens/phases"; -const stopAllExtensionsInjectable = getInjectable({ +const stopAllExtensionsOnQuitInjectable = getInjectable({ id: "stop-all-extensions", - instantiate: (di) => { - const extensionInstances = di.inject(extensionsInjectable); + instantiate: (di) => ({ + run: async () => { + const extensionInstances = di.inject(extensionsInjectable); - return async () => { for (const instance of extensionInstances.get()) { const extension = di.inject(extensionInjectable, instance); await instance.disable(); extension.deregister(); } - }; - }, + }, + }), + injectionToken: onQuitOfBackEndInjectionToken, }); -export default stopAllExtensionsInjectable; +export default stopAllExtensionsOnQuitInjectable; diff --git a/packages/core/src/main/stop-services-and-exit-app.injectable.ts b/packages/core/src/main/stop-services-and-exit-app.injectable.ts index 5315543055..1dcda24aee 100644 --- a/packages/core/src/main/stop-services-and-exit-app.injectable.ts +++ b/packages/core/src/main/stop-services-and-exit-app.injectable.ts @@ -8,7 +8,6 @@ import clusterManagerInjectable from "./cluster/manager.injectable"; import loggerInjectable from "../common/logger.injectable"; import closeAllWindowsInjectable from "./start-main-application/lens-window/hide-all-windows/close-all-windows.injectable"; import emitAppEventInjectable from "../common/app-event-bus/emit-event.injectable"; -import stopAllExtensionsInjectable from "../features/extensions/stopping/main/stop-all.injectable"; const stopServicesAndExitAppInjectable = getInjectable({ id: "stop-services-and-exit-app", @@ -19,13 +18,11 @@ const stopServicesAndExitAppInjectable = getInjectable({ const logger = di.inject(loggerInjectable); const closeAllWindows = di.inject(closeAllWindowsInjectable); const emitAppEvent = di.inject(emitAppEventInjectable); - const stopAllExtensions = di.inject(stopAllExtensionsInjectable); return async () => { emitAppEvent({ name: "service", action: "close" }); closeAllWindows(); clusterManager.stop(); - await stopAllExtensions(); logger.info("SERVICE:QUIT"); setTimeout(forceAppExit, 1000); };