diff --git a/packages/core/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts b/packages/core/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts index 4d7d9ca8f5..59d3a5465c 100644 --- a/packages/core/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts +++ b/packages/core/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts @@ -4,17 +4,11 @@ */ import type { DiContainer } from "@ogre-tools/injectable"; +export type Environments = "main" | "renderer"; + const legacyGlobalDis = new Map(); -export enum Environments { - renderer, - main, -} - -export const setLegacyGlobalDiForExtensionApi = ( - di: DiContainer, - environment: Environments, -) => { +export const setLegacyGlobalDiForExtensionApi = (di: DiContainer, environment: Environments) => { legacyGlobalDis.set(environment, di); }; diff --git a/packages/core/src/main/getDi.ts b/packages/core/src/main/getDi.ts index e325e66ed5..8d4b1ff57f 100644 --- a/packages/core/src/main/getDi.ts +++ b/packages/core/src/main/getDi.ts @@ -3,5 +3,15 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { createContainer } from "@ogre-tools/injectable"; +import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; +import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; -export const getDi = () => createContainer("main"); +export const getDi = () => { + const environment = "main"; + const di = createContainer(environment); + + registerMobX(di); + setLegacyGlobalDiForExtensionApi(di, environment); + + return di; +}; diff --git a/packages/core/src/main/getDiForUnitTesting.ts b/packages/core/src/main/getDiForUnitTesting.ts index 5e923433fa..eb734a7632 100644 --- a/packages/core/src/main/getDiForUnitTesting.ts +++ b/packages/core/src/main/getDiForUnitTesting.ts @@ -5,8 +5,7 @@ import { chunk } from "lodash/fp"; import type { DiContainer, Injectable } from "@ogre-tools/injectable"; -import { createContainer, isInjectable, getInjectable } from "@ogre-tools/injectable"; -import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; +import { isInjectable, getInjectable } from "@ogre-tools/injectable"; import spawnInjectable from "./child-process/spawn.injectable"; import initializeExtensionsInjectable from "./start-main-application/runnables/initialize-extensions.injectable"; import setupIpcMainHandlersInjectable from "./electron-app/runnables/setup-ipc-main-handlers/setup-ipc-main-handlers.injectable"; @@ -25,20 +24,20 @@ import electronQuitAndInstallUpdateInjectable from "./electron-app/features/elec import electronUpdaterIsActiveInjectable from "./electron-app/features/electron-updater-is-active.injectable"; import setUpdateOnQuitInjectable from "./electron-app/features/set-update-on-quit.injectable"; import waitUntilBundledExtensionsAreLoadedInjectable from "./start-main-application/lens-window/application-window/wait-until-bundled-extensions-are-loaded.injectable"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import electronInjectable from "./utils/resolve-system-proxy/electron.injectable"; import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable"; import type { GlobalOverride } from "../common/test-utils/get-global-override"; import nodeEnvInjectionToken from "../common/vars/node-env-injection-token"; import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes"; import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable"; +import { getDi } from "./getDi"; export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) { const { doGeneralOverrides = false, } = opts; - const di = createContainer("main"); + const di = getDi(); di.register(getInjectable({ id: "node-env", @@ -46,8 +45,6 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) injectionToken: nodeEnvInjectionToken, })); - setLegacyGlobalDiForExtensionApi(di, Environments.main); - di.preventSideEffects(); const injectables = ( @@ -57,8 +54,6 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) .filter(isInjectable) ) as Injectable[]; - registerMobX(di); - runInAction(() => { di.register(applicationInformationFakeInjectable); diff --git a/packages/core/src/main/register-injectables.ts b/packages/core/src/main/register-injectables.ts index 5ddcb640c1..eb18df3d3f 100644 --- a/packages/core/src/main/register-injectables.ts +++ b/packages/core/src/main/register-injectables.ts @@ -4,16 +4,10 @@ */ import type { DiContainer } from "@ogre-tools/injectable"; import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { runInAction } from "mobx"; -import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; export function registerInjectables(di: DiContainer) { - setLegacyGlobalDiForExtensionApi(di, Environments.main); - runInAction(() => { - registerMobX(di); - autoRegister({ di, targetModule: module, @@ -25,6 +19,4 @@ export function registerInjectables(di: DiContainer) { ], }); }); - - return di; } diff --git a/packages/core/src/renderer/getDi.tsx b/packages/core/src/renderer/getDi.tsx index 77d665760c..22e545e780 100644 --- a/packages/core/src/renderer/getDi.tsx +++ b/packages/core/src/renderer/getDi.tsx @@ -4,5 +4,17 @@ */ import { createContainer } from "@ogre-tools/injectable"; +import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; +import { registerInjectableReact } from "@ogre-tools/injectable-react"; +import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; -export const getDi = () => createContainer("renderer"); +export const getDi = () => { + const environment = "renderer"; + const di = createContainer(environment); + + registerMobX(di); + registerInjectableReact(di); + setLegacyGlobalDiForExtensionApi(di, environment); + + return di; +}; diff --git a/packages/core/src/renderer/getDiForUnitTesting.tsx b/packages/core/src/renderer/getDiForUnitTesting.tsx index 15ddef9804..711a0c26a9 100644 --- a/packages/core/src/renderer/getDiForUnitTesting.tsx +++ b/packages/core/src/renderer/getDiForUnitTesting.tsx @@ -5,8 +5,7 @@ import { noop, chunk } from "lodash/fp"; import type { Injectable } from "@ogre-tools/injectable"; -import { createContainer, isInjectable, getInjectable } from "@ogre-tools/injectable"; -import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; +import { isInjectable, getInjectable } from "@ogre-tools/injectable"; import requestFromChannelInjectable from "./utils/channel/request-from-channel.injectable"; import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes"; import terminalSpawningPoolInjectable from "./components/dock/terminal/terminal-spawning-pool.injectable"; @@ -14,20 +13,19 @@ import hostedClusterIdInjectable from "./cluster-frame-context/hosted-cluster-id import { runInAction } from "mobx"; import requestAnimationFrameInjectable from "./components/animate/request-animation-frame.injectable"; import startTopbarStateSyncInjectable from "./components/layout/top-bar/start-state-sync.injectable"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.injectable"; import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable"; import type { GlobalOverride } from "../common/test-utils/get-global-override"; import nodeEnvInjectionToken from "../common/vars/node-env-injection-token"; import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable"; -import { registerInjectableReact } from "@ogre-tools/injectable-react"; +import { getDi } from "./getDi"; export const getDiForUnitTesting = ( opts: { doGeneralOverrides?: boolean } = {}, ) => { const { doGeneralOverrides = false } = opts; - const di = createContainer("renderer"); + const di = getDi(); di.register(getInjectable({ id: "node-env", @@ -37,8 +35,6 @@ export const getDiForUnitTesting = ( di.preventSideEffects(); - setLegacyGlobalDiForExtensionApi(di, Environments.renderer); - const injectables = ( global.injectablePaths.renderer.paths .map(path => require(path)) @@ -46,9 +42,6 @@ export const getDiForUnitTesting = ( .filter(isInjectable) ) as Injectable[]; - registerMobX(di); - registerInjectableReact(di); - runInAction(() => { di.register(applicationInformationFakeInjectable); diff --git a/packages/core/src/renderer/register-injectables.ts b/packages/core/src/renderer/register-injectables.ts index 41724d9413..0974a1a08b 100644 --- a/packages/core/src/renderer/register-injectables.ts +++ b/packages/core/src/renderer/register-injectables.ts @@ -5,19 +5,10 @@ import type { DiContainer } from "@ogre-tools/injectable"; import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; -import { registerInjectableReact } from "@ogre-tools/injectable-react"; import { runInAction } from "mobx"; -import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; export function registerInjectables(di: DiContainer) { - setLegacyGlobalDiForExtensionApi(di, Environments.renderer); - - registerMobX(di); - registerInjectableReact(di); - runInAction(() => { - autoRegister({ di, targetModule: module, @@ -29,6 +20,4 @@ export function registerInjectables(di: DiContainer) { ], }); }); - - return di; }