mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Introduce abstractions for electron application events
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
f2d52066f3
commit
bace3c84d7
@ -3,7 +3,7 @@
|
|||||||
* 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 electronAppInjectable from "../../electron-app/electron-app.injectable";
|
||||||
import { getElectronAppPath } from "./get-electron-app-path";
|
import { getElectronAppPath } from "./get-electron-app-path";
|
||||||
|
|
||||||
const getElectronAppPathInjectable = getInjectable({
|
const getElectronAppPathInjectable = getInjectable({
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* 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 electronAppInjectable from "./electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../electron-app/electron-app.injectable";
|
||||||
import getElectronAppPathInjectable from "./get-electron-app-path.injectable";
|
import getElectronAppPathInjectable from "./get-electron-app-path.injectable";
|
||||||
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||||
import type { App } from "electron";
|
import type { App } from "electron";
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import type { PathName } from "../../../common/app-paths/app-path-names";
|
import type { PathName } from "../../../common/app-paths/app-path-names";
|
||||||
import electronAppInjectable from "../get-electron-app-path/electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../electron-app/electron-app.injectable";
|
||||||
|
|
||||||
const setElectronAppPathInjectable = getInjectable({
|
const setElectronAppPathInjectable = getInjectable({
|
||||||
id: "set-electron-app-path",
|
id: "set-electron-app-path",
|
||||||
|
|||||||
@ -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 electronAppInjectable from "./electron-app.injectable";
|
||||||
|
|
||||||
|
interface CallbackArgs {
|
||||||
|
windowIsVisible: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const whenApplicationIsActivatedInjectable = getInjectable({
|
||||||
|
id: "when-application-is-activated",
|
||||||
|
|
||||||
|
instantiate: (di) => {
|
||||||
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
|
return (callback: (args: CallbackArgs) => void | Promise<void>) => {
|
||||||
|
app.on("activate", async (_, hasVisibleWindows) => {
|
||||||
|
await callback({
|
||||||
|
windowIsVisible: hasVisibleWindows,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default whenApplicationIsActivatedInjectable;
|
||||||
@ -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 electronAppInjectable from "./electron-app.injectable";
|
||||||
|
|
||||||
|
interface CallbackArgs {
|
||||||
|
cancel: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const whenApplicationWillQuitInjectable = getInjectable({
|
||||||
|
id: "when-application-will-quit",
|
||||||
|
|
||||||
|
instantiate: (di) => {
|
||||||
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
|
return (callback: (args: CallbackArgs) => void) => {
|
||||||
|
app.on("will-quit", (event) => {
|
||||||
|
callback({
|
||||||
|
cancel: () => { event.preventDefault(); },
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default whenApplicationWillQuitInjectable;
|
||||||
33
src/main/electron-app/when-opening-url.injectable.ts
Normal file
33
src/main/electron-app/when-opening-url.injectable.ts
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/**
|
||||||
|
* 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";
|
||||||
|
|
||||||
|
interface CallbackArgs {
|
||||||
|
cancel: () => void;
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const whenOpeningUrlInjectable = getInjectable({
|
||||||
|
id: "when-opening-url",
|
||||||
|
|
||||||
|
instantiate: (di) => {
|
||||||
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
|
return (callback: (args: CallbackArgs) => void | Promise<void>) => {
|
||||||
|
app.on("open-url", async (event, url) => {
|
||||||
|
await callback({
|
||||||
|
cancel: () => {
|
||||||
|
event.preventDefault();
|
||||||
|
},
|
||||||
|
|
||||||
|
url,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default whenOpeningUrlInjectable;
|
||||||
28
src/main/electron-app/when-second-instance.injectable.ts
Normal file
28
src/main/electron-app/when-second-instance.injectable.ts
Normal file
@ -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 electronAppInjectable from "./electron-app.injectable";
|
||||||
|
|
||||||
|
interface CallbackArgs {
|
||||||
|
commandLineArguments: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
const whenSecondInstanceInjectable = getInjectable({
|
||||||
|
id: "when-second-instance",
|
||||||
|
|
||||||
|
instantiate: (di) => {
|
||||||
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
|
return (callback: (args: CallbackArgs) => void | Promise<void>) => {
|
||||||
|
app.on("second-instance", async (_, commandLineArguments) => {
|
||||||
|
await callback({
|
||||||
|
commandLineArguments,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default whenSecondInstanceInjectable;
|
||||||
@ -35,6 +35,10 @@ import { getAbsolutePathFake } from "../common/test-utils/get-absolute-path-fake
|
|||||||
import joinPathsInjectable from "../common/path/join-paths.injectable";
|
import joinPathsInjectable from "../common/path/join-paths.injectable";
|
||||||
import { joinPathsFake } from "../common/test-utils/join-paths-fake";
|
import { joinPathsFake } from "../common/test-utils/join-paths-fake";
|
||||||
import hotbarStoreInjectable from "../common/hotbar-store.injectable";
|
import hotbarStoreInjectable from "../common/hotbar-store.injectable";
|
||||||
|
import whenApplicationIsActivatedInjectable from "./electron-app/when-application-is-activated.injectable";
|
||||||
|
import whenApplicationWillQuitInjectable from "./electron-app/when-application-will-quit.injectable";
|
||||||
|
import whenOpeningUrlInjectable from "./electron-app/when-opening-url.injectable";
|
||||||
|
import whenSecondInstanceInjectable from "./electron-app/when-second-instance.injectable";
|
||||||
|
|
||||||
export const getDiForUnitTesting = (
|
export const getDiForUnitTesting = (
|
||||||
{ doGeneralOverrides } = { doGeneralOverrides: false },
|
{ doGeneralOverrides } = { doGeneralOverrides: false },
|
||||||
@ -63,6 +67,11 @@ export const getDiForUnitTesting = (
|
|||||||
di.override(getAbsolutePathInjectable, () => getAbsolutePathFake);
|
di.override(getAbsolutePathInjectable, () => getAbsolutePathFake);
|
||||||
di.override(joinPathsInjectable, () => joinPathsFake);
|
di.override(joinPathsInjectable, () => joinPathsFake);
|
||||||
|
|
||||||
|
di.override(whenApplicationIsActivatedInjectable, () => () => {});
|
||||||
|
di.override(whenApplicationWillQuitInjectable, () => () => {});
|
||||||
|
di.override(whenOpeningUrlInjectable, () => () => {});
|
||||||
|
di.override(whenSecondInstanceInjectable, () => () => {});
|
||||||
|
|
||||||
// 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);
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,8 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
|
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
|
||||||
import windowManagerInjectable from "../../../window-manager.injectable";
|
import windowManagerInjectable from "../../../window-manager.injectable";
|
||||||
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
||||||
import electronAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
import whenOpeningUrlInjectable from "../../../electron-app/when-opening-url.injectable";
|
||||||
|
import whenSecondInstanceInjectable from "../../../electron-app/when-second-instance.injectable";
|
||||||
|
|
||||||
const setupDeepLinking = getInjectable({
|
const setupDeepLinking = getInjectable({
|
||||||
id: "setup-deep-linking",
|
id: "setup-deep-linking",
|
||||||
@ -14,17 +15,18 @@ const setupDeepLinking = getInjectable({
|
|||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const lensProtocolRouterMain = di.inject(lensProtocolRouterMainInjectable);
|
const lensProtocolRouterMain = di.inject(lensProtocolRouterMainInjectable);
|
||||||
const windowManager = di.inject(windowManagerInjectable);
|
const windowManager = di.inject(windowManagerInjectable);
|
||||||
const app = di.inject(electronAppInjectable);
|
const whenOpeningUrl = di.inject(whenOpeningUrlInjectable);
|
||||||
|
const whenSecondInstance = di.inject(whenSecondInstanceInjectable);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
run: () => {
|
run: () => {
|
||||||
app.on("open-url", async (event, url) => {
|
whenOpeningUrl(({ cancel, url }) => {
|
||||||
event.preventDefault();
|
cancel();
|
||||||
|
|
||||||
await lensProtocolRouterMain.route(url);
|
lensProtocolRouterMain.route(url);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.on("second-instance", async (_, commandLineArguments) => {
|
whenSecondInstance(async ({ commandLineArguments }) => {
|
||||||
for (const arg of commandLineArguments) {
|
for (const arg of commandLineArguments) {
|
||||||
if (arg.toLowerCase().startsWith("lens://")) {
|
if (arg.toLowerCase().startsWith("lens://")) {
|
||||||
await lensProtocolRouterMain.route(arg);
|
await lensProtocolRouterMain.route(arg);
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
||||||
import electronAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../../electron-app/electron-app.injectable";
|
||||||
|
|
||||||
const setupHardwareAccelerationInjectable = getInjectable({
|
const setupHardwareAccelerationInjectable = getInjectable({
|
||||||
id: "setup-hardware-acceleration",
|
id: "setup-hardware-acceleration",
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import {
|
|||||||
getAppVersion,
|
getAppVersion,
|
||||||
getAppVersionFromProxyServer,
|
getAppVersionFromProxyServer,
|
||||||
} from "../../../../common/utils";
|
} from "../../../../common/utils";
|
||||||
import exitAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/exit-app.injectable";
|
import exitAppInjectable from "../../../electron-app/exit-app.injectable";
|
||||||
import lensProxyInjectable from "../../../lens-proxy.injectable";
|
import lensProxyInjectable from "../../../lens-proxy.injectable";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import { dialog } from "electron";
|
import { dialog } from "electron";
|
||||||
|
|||||||
@ -6,9 +6,9 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
||||||
import { productName } from "../../../../common/vars";
|
import { productName } from "../../../../common/vars";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import electronAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../../electron-app/electron-app.injectable";
|
||||||
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
|
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
|
||||||
import exitAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/exit-app.injectable";
|
import exitAppInjectable from "../../../electron-app/exit-app.injectable";
|
||||||
|
|
||||||
const setupProtocolRouterMainInjectable = getInjectable({
|
const setupProtocolRouterMainInjectable = getInjectable({
|
||||||
id: "setup-protocol-router-main",
|
id: "setup-protocol-router-main",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import windowManagerInjectable from "../../../window-manager.injectable";
|
import windowManagerInjectable from "../../../window-manager.injectable";
|
||||||
import electronAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../../electron-app/electron-app.injectable";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import isMacInjectable from "../../../../common/vars/is-mac.injectable";
|
import isMacInjectable from "../../../../common/vars/is-mac.injectable";
|
||||||
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* 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 "../../../app-paths/get-electron-app-path/electron-app/electron-app.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";
|
||||||
|
|
||||||
|
|||||||
@ -3,16 +3,16 @@
|
|||||||
* 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 "../../../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
|
||||||
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
||||||
import { onApplicationSoftQuitInjectionToken } from "../../on-application-soft-quit/on-application-soft-quit-injection-token";
|
import { onApplicationSoftQuitInjectionToken } from "../../on-application-soft-quit/on-application-soft-quit-injection-token";
|
||||||
import { runManyFor } from "../../run-many-for";
|
import { runManyFor } from "../../run-many-for";
|
||||||
|
import whenApplicationWillQuitInjectable from "../../../electron-app/when-application-will-quit.injectable";
|
||||||
|
|
||||||
const setupClosingOfApplicationInjectable = getInjectable({
|
const setupClosingOfApplicationInjectable = getInjectable({
|
||||||
id: "setup-closing-of-application",
|
id: "setup-closing-of-application",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const app = di.inject(electronAppInjectable);
|
const whenApplicationWillQuit = di.inject(whenApplicationWillQuitInjectable);
|
||||||
|
|
||||||
const runManyForApplicationClose = runManyFor(di)(
|
const runManyForApplicationClose = runManyFor(di)(
|
||||||
onApplicationSoftQuitInjectionToken,
|
onApplicationSoftQuitInjectionToken,
|
||||||
@ -20,8 +20,8 @@ const setupClosingOfApplicationInjectable = getInjectable({
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
run: () => {
|
run: () => {
|
||||||
app.on("will-quit", async (event) => {
|
whenApplicationWillQuit(async args => {
|
||||||
await runManyForApplicationClose({ event });
|
await runManyForApplicationClose(args);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import windowManagerInjectable from "../../../window-manager.injectable";
|
import windowManagerInjectable from "../../../window-manager.injectable";
|
||||||
import electronAppInjectable from "../../../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
|
||||||
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token";
|
||||||
|
import whenApplicationIsActivatedInjectable from "../../../electron-app/when-application-is-activated.injectable";
|
||||||
|
|
||||||
const setupMainWindowVisibilityInjectable = getInjectable({
|
const setupMainWindowVisibilityInjectable = getInjectable({
|
||||||
id: "setup-main-window-visibility",
|
id: "setup-main-window-visibility",
|
||||||
@ -14,17 +14,18 @@ const setupMainWindowVisibilityInjectable = getInjectable({
|
|||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const logger = di.inject(loggerInjectable);
|
const logger = di.inject(loggerInjectable);
|
||||||
const windowManager = di.inject(windowManagerInjectable);
|
const windowManager = di.inject(windowManagerInjectable);
|
||||||
const app = di.inject(electronAppInjectable);
|
const whenApplicationIsActivated = di.inject(whenApplicationIsActivatedInjectable);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
run: () => {
|
run: () => {
|
||||||
app.on("activate", async (_, hasVisibleWindows) => {
|
whenApplicationIsActivated(async ({ windowIsVisible }) => {
|
||||||
logger.info("APP:ACTIVATE", { hasVisibleWindows });
|
logger.info("APP:ACTIVATE", { hasVisibleWindows: windowIsVisible });
|
||||||
|
|
||||||
if (!hasVisibleWindows) {
|
if (!windowIsVisible) {
|
||||||
await windowManager.ensureMainWindow(false);
|
await windowManager.ensureMainWindow(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { powerMonitor } from "electron";
|
import { powerMonitor } from "electron";
|
||||||
import exitAppInjectable from "../../../app-paths/get-electron-app-path/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";
|
||||||
|
|
||||||
const setupShutdownOfApplicationWhenSystemShutdownsInjectable = getInjectable({
|
const setupShutdownOfApplicationWhenSystemShutdownsInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,10 +4,9 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
import type { Runnable } from "../run-many-for";
|
import type { Runnable } from "../run-many-for";
|
||||||
import type { Event } from "electron";
|
|
||||||
|
|
||||||
export const onApplicationHardQuitInjectionToken = getInjectionToken<
|
export const onApplicationHardQuitInjectionToken = getInjectionToken<
|
||||||
Runnable<{ event: Event }>
|
Runnable<{ cancel: () => void }>
|
||||||
>({
|
>({
|
||||||
id: "on-application-hard-quit",
|
id: "on-application-hard-quit",
|
||||||
});
|
});
|
||||||
|
|||||||
@ -4,10 +4,9 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
import type { Runnable } from "../run-many-for";
|
import type { Runnable } from "../run-many-for";
|
||||||
import type { Event } from "electron";
|
|
||||||
|
|
||||||
export const onApplicationSoftQuitInjectionToken = getInjectionToken<
|
export const onApplicationSoftQuitInjectionToken = getInjectionToken<
|
||||||
Runnable<{ event: Event }>
|
Runnable<{ cancel: () => void }>
|
||||||
>({
|
>({
|
||||||
id: "on-application-soft-quit",
|
id: "on-application-soft-quit",
|
||||||
});
|
});
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
|
||||||
import electronAppInjectable from "../app-paths/get-electron-app-path/electron-app/electron-app.injectable";
|
import electronAppInjectable from "../electron-app/electron-app.injectable";
|
||||||
import { beforeApplicationIsReadyInjectionToken } from "./before-application-is-ready/before-application-is-ready-injection-token";
|
import { beforeApplicationIsReadyInjectionToken } from "./before-application-is-ready/before-application-is-ready-injection-token";
|
||||||
import { afterApplicationIsReadyInjectionToken } from "./after-application-is-ready/after-application-is-ready-injection-token";
|
import { afterApplicationIsReadyInjectionToken } from "./after-application-is-ready/after-application-is-ready-injection-token";
|
||||||
import { runManyFor } from "./run-many-for";
|
import { runManyFor } from "./run-many-for";
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* 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 exitAppInjectable from "./app-paths/get-electron-app-path/electron-app/exit-app.injectable";
|
import exitAppInjectable from "./electron-app/exit-app.injectable";
|
||||||
import clusterManagerInjectable from "./cluster-manager.injectable";
|
import clusterManagerInjectable from "./cluster-manager.injectable";
|
||||||
import windowManagerInjectable from "./window-manager.injectable";
|
import windowManagerInjectable from "./window-manager.injectable";
|
||||||
import appEventBusInjectable from "../common/app-event-bus/app-event-bus.injectable";
|
import appEventBusInjectable from "../common/app-event-bus/app-event-bus.injectable";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user