mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Make runnables for before application is ready synchronous as this is technical limitation of Electron
See: https://github.com/electron/electron/issues/21370 Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
d4b2ff992a
commit
25a48f3d7d
@ -3,9 +3,9 @@
|
|||||||
* 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 { getInjectionToken } from "@ogre-tools/injectable";
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
import type { Runnable } from "../run-many-for";
|
import type { RunnableSync } from "../run-many-sync-for";
|
||||||
|
|
||||||
export const beforeApplicationIsReadyInjectionToken =
|
export const beforeApplicationIsReadyInjectionToken =
|
||||||
getInjectionToken<Runnable>({
|
getInjectionToken<RunnableSync>({
|
||||||
id: "before-application-is-ready",
|
id: "before-application-is-ready",
|
||||||
});
|
});
|
||||||
|
|||||||
@ -8,16 +8,20 @@ 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";
|
||||||
|
import { runManySyncFor } from "./run-many-sync-for";
|
||||||
|
|
||||||
const startMainApplicationInjectable = getInjectable({
|
const startMainApplicationInjectable = getInjectable({
|
||||||
id: "start-main-application",
|
id: "start-main-application",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const runMany = runManyFor(di);
|
const runMany = runManyFor(di);
|
||||||
|
const runManySync = runManySyncFor(di);
|
||||||
const app = di.inject(electronAppInjectable);
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
return async () => {
|
return async () => {
|
||||||
await runMany(beforeApplicationIsReadyInjectionToken)();
|
// Stuff happening before application is ready needs to be synchronous because of
|
||||||
|
// https://github.com/electron/electron/issues/21370
|
||||||
|
runManySync(beforeApplicationIsReadyInjectionToken)();
|
||||||
|
|
||||||
await app.whenReady();
|
await app.whenReady();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user