mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Introduce more abstractions for electron
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
bace3c84d7
commit
068f9f67da
14
src/main/electron-app/power-monitor.injectable.ts
Normal file
14
src/main/electron-app/power-monitor.injectable.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* 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";
|
||||||
|
|
||||||
|
const powerMonitorInjectable = getInjectable({
|
||||||
|
id: "power-monitor",
|
||||||
|
instantiate: () => powerMonitor,
|
||||||
|
causesSideEffects: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default powerMonitorInjectable;
|
||||||
20
src/main/electron-app/set-application-name.injectable.ts
Normal file
20
src/main/electron-app/set-application-name.injectable.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* 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 electronAppInjectable from "./electron-app.injectable";
|
||||||
|
|
||||||
|
const setApplicationNameInjectable = getInjectable({
|
||||||
|
id: "set-application-name",
|
||||||
|
|
||||||
|
instantiate: (di) => {
|
||||||
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
|
return (name: string) => {
|
||||||
|
app.setName(name);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default setApplicationNameInjectable;
|
||||||
22
src/main/electron-app/when-system-shutdown.injectable.ts
Normal file
22
src/main/electron-app/when-system-shutdown.injectable.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/**
|
||||||
|
* 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 powerMonitorInjectable from "./power-monitor.injectable";
|
||||||
|
|
||||||
|
const whenSystemShutdownInjectable = getInjectable({
|
||||||
|
id: "when-system-shutdown",
|
||||||
|
|
||||||
|
instantiate: (di) => {
|
||||||
|
const powerMonitor = di.inject(powerMonitorInjectable);
|
||||||
|
|
||||||
|
return (callback: () => void) => {
|
||||||
|
powerMonitor.on("shutdown", () => {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default whenSystemShutdownInjectable;
|
||||||
@ -39,6 +39,9 @@ import whenApplicationIsActivatedInjectable from "./electron-app/when-applicatio
|
|||||||
import whenApplicationWillQuitInjectable from "./electron-app/when-application-will-quit.injectable";
|
import whenApplicationWillQuitInjectable from "./electron-app/when-application-will-quit.injectable";
|
||||||
import whenOpeningUrlInjectable from "./electron-app/when-opening-url.injectable";
|
import whenOpeningUrlInjectable from "./electron-app/when-opening-url.injectable";
|
||||||
import whenSecondInstanceInjectable from "./electron-app/when-second-instance.injectable";
|
import whenSecondInstanceInjectable from "./electron-app/when-second-instance.injectable";
|
||||||
|
import whenSystemShutdownInjectable from "./electron-app/when-system-shutdown.injectable";
|
||||||
|
import exitAppInjectable from "./electron-app/exit-app.injectable";
|
||||||
|
import setApplicationNameInjectable from "./electron-app/set-application-name.injectable";
|
||||||
|
|
||||||
export const getDiForUnitTesting = (
|
export const getDiForUnitTesting = (
|
||||||
{ doGeneralOverrides } = { doGeneralOverrides: false },
|
{ doGeneralOverrides } = { doGeneralOverrides: false },
|
||||||
@ -71,6 +74,9 @@ export const getDiForUnitTesting = (
|
|||||||
di.override(whenApplicationWillQuitInjectable, () => () => {});
|
di.override(whenApplicationWillQuitInjectable, () => () => {});
|
||||||
di.override(whenOpeningUrlInjectable, () => () => {});
|
di.override(whenOpeningUrlInjectable, () => () => {});
|
||||||
di.override(whenSecondInstanceInjectable, () => () => {});
|
di.override(whenSecondInstanceInjectable, () => () => {});
|
||||||
|
di.override(whenSystemShutdownInjectable, () => () => {});
|
||||||
|
di.override(exitAppInjectable, () => () => {});
|
||||||
|
di.override(setApplicationNameInjectable, () => () => {});
|
||||||
|
|
||||||
// eslint-disable-next-line unused-imports/no-unused-vars-ts
|
// eslint-disable-next-line unused-imports/no-unused-vars-ts
|
||||||
di.override(extensionsStoreInjectable, () => ({ isEnabled: ({ id, isBundled }) => false }) as ExtensionsStore);
|
di.override(extensionsStoreInjectable, () => ({ isEnabled: ({ id, isBundled }) => false }) as ExtensionsStore);
|
||||||
|
|||||||
@ -3,19 +3,19 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import electronAppInjectable from "../../../electron-app/electron-app.injectable";
|
|
||||||
import appNameInjectable from "../../../app-paths/app-name/app-name.injectable";
|
import appNameInjectable from "../../../app-paths/app-name/app-name.injectable";
|
||||||
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
||||||
|
import setApplicationNameInjectable from "../../../electron-app/set-application-name.injectable";
|
||||||
|
|
||||||
const setupApplicationNameInjectable = getInjectable({
|
const setupApplicationNameInjectable = getInjectable({
|
||||||
id: "setup-application-name",
|
id: "setup-application-name",
|
||||||
|
|
||||||
instantiate: (di) => ({
|
instantiate: (di) => ({
|
||||||
run: () => {
|
run: () => {
|
||||||
const app = di.inject(electronAppInjectable);
|
const setApplicationName = di.inject(setApplicationNameInjectable);
|
||||||
const appName = di.inject(appNameInjectable);
|
const appName = di.inject(appNameInjectable);
|
||||||
|
|
||||||
app.setName(appName);
|
setApplicationName(appName);
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@ -3,25 +3,24 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { powerMonitor } from "electron";
|
|
||||||
import exitAppInjectable from "../../../electron-app/exit-app.injectable";
|
import exitAppInjectable from "../../../electron-app/exit-app.injectable";
|
||||||
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
||||||
|
import whenSystemShutdownInjectable from "../../../electron-app/when-system-shutdown.injectable";
|
||||||
|
|
||||||
const setupShutdownOfApplicationWhenSystemShutdownsInjectable = getInjectable({
|
const setupShutdownOfApplicationWhenSystemShutdownsInjectable = getInjectable({
|
||||||
id: "setup-shutdown-of-application-when-system-shutdowns",
|
id: "setup-shutdown-of-application-when-system-shutdowns",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const exitApp = di.inject(exitAppInjectable);
|
const exitApp = di.inject(exitAppInjectable);
|
||||||
|
const whenSystemShutdown = di.inject(whenSystemShutdownInjectable);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
run: () => {
|
run: () => {
|
||||||
powerMonitor.on("shutdown", exitApp);
|
whenSystemShutdown(exitApp);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
causesSideEffects: true,
|
|
||||||
|
|
||||||
injectionToken: beforeApplicationIsReadyInjectionToken,
|
injectionToken: beforeApplicationIsReadyInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user