diff --git a/src/main/start-main-application/before-application-is-ready/before-application-is-ready-injection-token.ts b/src/main/start-main-application/before-application-is-ready/before-application-is-ready-injection-token.ts index e4e099a42c..33320a16bb 100644 --- a/src/main/start-main-application/before-application-is-ready/before-application-is-ready-injection-token.ts +++ b/src/main/start-main-application/before-application-is-ready/before-application-is-ready-injection-token.ts @@ -3,9 +3,9 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectionToken } from "@ogre-tools/injectable"; -import type { Runnable } from "../run-many-for"; +import type { RunnableSync } from "../run-many-sync-for"; export const beforeApplicationIsReadyInjectionToken = - getInjectionToken({ + getInjectionToken({ id: "before-application-is-ready", }); diff --git a/src/main/start-main-application/start-main-application.injectable.ts b/src/main/start-main-application/start-main-application.injectable.ts index 21360f7ca6..26450828d1 100644 --- a/src/main/start-main-application/start-main-application.injectable.ts +++ b/src/main/start-main-application/start-main-application.injectable.ts @@ -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 { afterApplicationIsReadyInjectionToken } from "./after-application-is-ready/after-application-is-ready-injection-token"; import { runManyFor } from "./run-many-for"; +import { runManySyncFor } from "./run-many-sync-for"; const startMainApplicationInjectable = getInjectable({ id: "start-main-application", instantiate: (di) => { const runMany = runManyFor(di); + const runManySync = runManySyncFor(di); const app = di.inject(electronAppInjectable); 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();