chore: Move stopping extensions to own runnable

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton committed 2023-04-12 15:15:36 -04:00
1 parent c0eb4c6dea
commit 9d181ab6ab
2 files changed
+9 -10

No files matched your search

@@ -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;