From 7c202d5874f5c8204417a9f6023f5e6615709074 Mon Sep 17 00:00:00 2001 From: Juho Heikka Date: Thu, 10 Feb 2022 18:41:10 +0200 Subject: [PATCH] Add abstraction to power monitor implementation Signed-off-by: Juho Heikka --- src/extensions/main-api/power.ts | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/extensions/main-api/power.ts b/src/extensions/main-api/power.ts index a14ddb0695..d433537742 100644 --- a/src/extensions/main-api/power.ts +++ b/src/extensions/main-api/power.ts @@ -2,5 +2,30 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -export { powerMonitor } from "electron"; +import { powerMonitor } from "electron"; +import type { Disposer } from "../../common/utils/disposer"; +type PowerEventListener = () => void; +export const onSuspend = (listener: PowerEventListener): Disposer => { + powerMonitor.on("suspend", listener); + + return () => { + powerMonitor.off("suspend", listener); + }; +}; + +export const onResume = (listener: PowerEventListener): Disposer => { + powerMonitor.on("resume", listener); + + return () => { + powerMonitor.off("resume", listener); + }; +}; + +export const onShutdown = (listener: PowerEventListener): Disposer => { + powerMonitor.on("shutdown", listener); + + return () => { + powerMonitor.off("shutdown", listener); + }; +};