From 1a8040e88fa723ba2c2c1148118548db822251f2 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 6 Dec 2022 18:01:57 -0500 Subject: [PATCH] Cherry pick updated startFrameInjectable Signed-off-by: Sebastian Malton --- .../start-frame/start-frame.injectable.ts | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/renderer/start-frame/start-frame.injectable.ts b/src/renderer/start-frame/start-frame.injectable.ts index d782fd3b36..17fcb0c094 100644 --- a/src/renderer/start-frame/start-frame.injectable.ts +++ b/src/renderer/start-frame/start-frame.injectable.ts @@ -4,16 +4,32 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { runManyFor } from "../../common/runnable/run-many-for"; -import { beforeFrameStartsInjectionToken } from "../before-frame-starts/tokens"; +import { beforeFrameStartsInjectionToken, evenBeforeClusterFrameStartsInjectionToken, evenBeforeFrameStartsInjectionToken, evenBeforeMainFrameStartsInjectionToken } from "../before-frame-starts/tokens"; +import currentlyInClusterFrameInjectable from "../routes/currently-in-cluster-frame.injectable"; const startFrameInjectable = getInjectable({ id: "start-frame", // TODO: Consolidate contents of bootstrap.tsx here - instantiate: (di) => async () => { - const beforeFrameStarts = runManyFor(di)(beforeFrameStartsInjectionToken); + instantiate: (di) => { + const runMany = runManyFor(di); + const evenBeforeFrameStarts = runMany(evenBeforeFrameStartsInjectionToken); + const evenBeforeMainFrameStarts = runMany(evenBeforeMainFrameStartsInjectionToken); + const evenBeforeClusterFrameStarts = runMany(evenBeforeClusterFrameStartsInjectionToken); + const beforeFrameStarts = runMany(beforeFrameStartsInjectionToken); + const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable); - await beforeFrameStarts(); + return async () => { + await evenBeforeFrameStarts(); + + if (currentlyInClusterFrame) { + await evenBeforeClusterFrameStarts(); + } else { + await evenBeforeMainFrameStarts(); + } + + await beforeFrameStarts(); + }; }, });