From 0bbc97e166de2b0cb8c2311ea0e79a3422f339c0 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 27 Apr 2022 11:18:12 +0300 Subject: [PATCH] Reimplement setup for system shutdown using runnables instead of non-OCP in index.ts Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen --- ...cation-when-system-shutdowns.injectable.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/start-main-application/before-application-is-ready/implementations/setup-shutdown-of-application-when-system-shutdowns.injectable.ts diff --git a/src/main/start-main-application/before-application-is-ready/implementations/setup-shutdown-of-application-when-system-shutdowns.injectable.ts b/src/main/start-main-application/before-application-is-ready/implementations/setup-shutdown-of-application-when-system-shutdowns.injectable.ts new file mode 100644 index 0000000000..3e917b7313 --- /dev/null +++ b/src/main/start-main-application/before-application-is-ready/implementations/setup-shutdown-of-application-when-system-shutdowns.injectable.ts @@ -0,0 +1,28 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import { powerMonitor } from "electron"; +import exitAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/exit-app.injectable"; +import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token"; + +const setupShutdownOfApplicationWhenSystemShutdownsInjectable = getInjectable({ + id: "setup-shutdown-of-application-when-system-shutdowns", + + instantiate: (di) => { + const exitApp = di.inject(exitAppInjectable); + + return { + run: () => { + powerMonitor.on("shutdown", exitApp); + }, + }; + }, + + causesSideEffects: true, + + injectionToken: beforeApplicationIsReadyInjectionToken, +}); + +export default setupShutdownOfApplicationWhenSystemShutdownsInjectable;