diff --git a/src/common/__tests__/cluster-store.test.ts b/src/common/__tests__/cluster-store.test.ts index f11bd2d593..9bfc5346ed 100644 --- a/src/common/__tests__/cluster-store.test.ts +++ b/src/common/__tests__/cluster-store.test.ts @@ -15,7 +15,7 @@ import getCustomKubeConfigDirectoryInjectable from "../app-paths/get-custom-kube import clusterStoreInjectable from "../cluster-store/cluster-store.injectable"; import type { ClusterModel } from "../cluster-types"; import type { - DependencyInjectionContainer, + DiContainer, } from "@ogre-tools/injectable"; @@ -75,7 +75,7 @@ jest.mock("electron", () => ({ })); describe("cluster-store", () => { - let mainDi: DependencyInjectionContainer; + let mainDi: DiContainer; let clusterStore: ClusterStore; let createCluster: (model: ClusterModel) => Cluster; diff --git a/src/common/__tests__/user-store.test.ts b/src/common/__tests__/user-store.test.ts index 9201b25bd7..da05121bdf 100644 --- a/src/common/__tests__/user-store.test.ts +++ b/src/common/__tests__/user-store.test.ts @@ -28,7 +28,7 @@ import electron from "electron"; import { stdout, stderr } from "process"; import { getDisForUnitTesting } from "../../test-utils/get-dis-for-unit-testing"; import userStoreInjectable from "../user-store/user-store.injectable"; -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import directoryForUserDataInjectable from "../app-paths/directory-for-user-data/directory-for-user-data.injectable"; import type { ClusterStoreModel } from "../cluster-store/cluster-store"; import { defaultTheme } from "../vars"; @@ -37,7 +37,7 @@ console = new Console(stdout, stderr); describe("user store tests", () => { let userStore: UserStore; - let mainDi: DependencyInjectionContainer; + let mainDi: DiContainer; beforeEach(async () => { const dis = getDisForUnitTesting({ doGeneralOverrides: true }); diff --git a/src/common/app-event-bus/app-event-bus.injectable.ts b/src/common/app-event-bus/app-event-bus.injectable.ts index 08e55e9333..e10d85c522 100644 --- a/src/common/app-event-bus/app-event-bus.injectable.ts +++ b/src/common/app-event-bus/app-event-bus.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { appEventBus } from "./event-bus"; const appEventBusInjectable = getInjectable({ + id: "app-event-bus", instantiate: () => appEventBus, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/app-paths/app-path-injection-token.ts b/src/common/app-paths/app-path-injection-token.ts index 9a50acd1a7..3b03e44daf 100644 --- a/src/common/app-paths/app-path-injection-token.ts +++ b/src/common/app-paths/app-path-injection-token.ts @@ -8,7 +8,7 @@ import { createChannel } from "../ipc-channel/create-channel/create-channel"; export type AppPaths = Record; -export const appPathsInjectionToken = getInjectionToken(); +export const appPathsInjectionToken = getInjectionToken({ id: "app-paths-token" }); export const appPathsIpcChannel = createChannel("app-paths"); diff --git a/src/common/app-paths/app-paths.test.ts b/src/common/app-paths/app-paths.test.ts index e7652024e0..5a811d3018 100644 --- a/src/common/app-paths/app-paths.test.ts +++ b/src/common/app-paths/app-paths.test.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { AppPaths, appPathsInjectionToken } from "./app-path-injection-token"; import getElectronAppPathInjectable from "../../main/app-paths/get-electron-app-path/get-electron-app-path.injectable"; import { getDisForUnitTesting } from "../../test-utils/get-dis-for-unit-testing"; @@ -13,8 +13,8 @@ import directoryForIntegrationTestingInjectable from "../../main/app-paths/direc import path from "path"; describe("app-paths", () => { - let mainDi: DependencyInjectionContainer; - let rendererDi: DependencyInjectionContainer; + let mainDi: DiContainer; + let rendererDi: DiContainer; let runSetups: () => Promise; beforeEach(() => { diff --git a/src/common/app-paths/directory-for-binaries/directory-for-binaries.injectable.ts b/src/common/app-paths/directory-for-binaries/directory-for-binaries.injectable.ts index 1857942fa8..1202436f22 100644 --- a/src/common/app-paths/directory-for-binaries/directory-for-binaries.injectable.ts +++ b/src/common/app-paths/directory-for-binaries/directory-for-binaries.injectable.ts @@ -7,6 +7,8 @@ import path from "path"; import directoryForUserDataInjectable from "../directory-for-user-data/directory-for-user-data.injectable"; const directoryForBinariesInjectable = getInjectable({ + id: "directory-for-binaries", + instantiate: (di) => path.join(di.inject(directoryForUserDataInjectable), "binaries"), diff --git a/src/common/app-paths/directory-for-downloads/directory-for-downloads.injectable.ts b/src/common/app-paths/directory-for-downloads/directory-for-downloads.injectable.ts index 2b8cca9759..708c47b4bb 100644 --- a/src/common/app-paths/directory-for-downloads/directory-for-downloads.injectable.ts +++ b/src/common/app-paths/directory-for-downloads/directory-for-downloads.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { appPathsInjectionToken } from "../app-path-injection-token"; const directoryForDownloadsInjectable = getInjectable({ + id: "directory-for-downloads", instantiate: (di) => di.inject(appPathsInjectionToken).downloads, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/app-paths/directory-for-exes/directory-for-exes.injectable.ts b/src/common/app-paths/directory-for-exes/directory-for-exes.injectable.ts index f1bd480d2d..b79a910dc3 100644 --- a/src/common/app-paths/directory-for-exes/directory-for-exes.injectable.ts +++ b/src/common/app-paths/directory-for-exes/directory-for-exes.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { appPathsInjectionToken } from "../app-path-injection-token"; const directoryForExesInjectable = getInjectable({ + id: "directory-for-exes", instantiate: (di) => di.inject(appPathsInjectionToken).exe, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts b/src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts index 7e4865197d..de8ba254f8 100644 --- a/src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts +++ b/src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts @@ -7,6 +7,8 @@ import directoryForUserDataInjectable from "../directory-for-user-data/directory import path from "path"; const directoryForKubeConfigsInjectable = getInjectable({ + id: "directory-for-kube-configs", + instantiate: (di) => path.resolve(di.inject(directoryForUserDataInjectable), "kubeconfigs"), diff --git a/src/common/app-paths/directory-for-temp/directory-for-temp.injectable.ts b/src/common/app-paths/directory-for-temp/directory-for-temp.injectable.ts index aeb4b3af67..a48cef4989 100644 --- a/src/common/app-paths/directory-for-temp/directory-for-temp.injectable.ts +++ b/src/common/app-paths/directory-for-temp/directory-for-temp.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { appPathsInjectionToken } from "../app-path-injection-token"; const directoryForTempInjectable = getInjectable({ + id: "directory-for-temp", instantiate: (di) => di.inject(appPathsInjectionToken).temp, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts b/src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts index 38d1dbfb7c..e71609a856 100644 --- a/src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts +++ b/src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { appPathsInjectionToken } from "../app-path-injection-token"; const directoryForUserDataInjectable = getInjectable({ + id: "directory-for-user-data", instantiate: (di) => di.inject(appPathsInjectionToken).userData, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts b/src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts index 15e3d03051..fedc357aa1 100644 --- a/src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts +++ b/src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts @@ -7,9 +7,11 @@ import path from "path"; import directoryForKubeConfigsInjectable from "../directory-for-kube-configs/directory-for-kube-configs.injectable"; const getCustomKubeConfigDirectoryInjectable = getInjectable({ + id: "get-custom-kube-config-directory", + instantiate: (di) => (directoryName: string) => { const directoryForKubeConfigs = di.inject(directoryForKubeConfigsInjectable); - + return path.resolve( directoryForKubeConfigs, directoryName, diff --git a/src/common/cluster-store/allowed-resources.injectable.ts b/src/common/cluster-store/allowed-resources.injectable.ts index 3e4d4e67f5..539ac548c2 100644 --- a/src/common/cluster-store/allowed-resources.injectable.ts +++ b/src/common/cluster-store/allowed-resources.injectable.ts @@ -7,6 +7,8 @@ import { comparer, computed } from "mobx"; import hostedClusterInjectable from "./hosted-cluster.injectable"; const allowedResourcesInjectable = getInjectable({ + id: "allowed-resources", + instantiate: (di) => { const cluster = di.inject(hostedClusterInjectable); diff --git a/src/common/cluster-store/cluster-store.injectable.ts b/src/common/cluster-store/cluster-store.injectable.ts index e0b4563ea8..e1dc8fcf3f 100644 --- a/src/common/cluster-store/cluster-store.injectable.ts +++ b/src/common/cluster-store/cluster-store.injectable.ts @@ -7,6 +7,8 @@ import { ClusterStore } from "./cluster-store"; import { createClusterInjectionToken } from "../cluster/create-cluster-injection-token"; const clusterStoreInjectable = getInjectable({ + id: "cluster-store", + instantiate: (di) => ClusterStore.createInstance({ createCluster: di.inject(createClusterInjectionToken), diff --git a/src/common/cluster-store/hosted-cluster.injectable.ts b/src/common/cluster-store/hosted-cluster.injectable.ts index 2d093a1600..3e6fe75120 100644 --- a/src/common/cluster-store/hosted-cluster.injectable.ts +++ b/src/common/cluster-store/hosted-cluster.injectable.ts @@ -7,6 +7,8 @@ import { getHostedClusterId } from "../utils"; import clusterStoreInjectable from "./cluster-store.injectable"; const hostedClusterInjectable = getInjectable({ + id: "hosted-cluster", + instantiate: (di) => { const hostedClusterId = getHostedClusterId(); diff --git a/src/common/cluster/authorization-review.injectable.ts b/src/common/cluster/authorization-review.injectable.ts index 92fbf5c4de..ed59e32d96 100644 --- a/src/common/cluster/authorization-review.injectable.ts +++ b/src/common/cluster/authorization-review.injectable.ts @@ -38,6 +38,7 @@ export function authorizationReview(proxyConfig: KubeConfig): CanI { } const authorizationReviewInjectable = getInjectable({ + id: "authorization-review", instantiate: () => authorizationReview, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/cluster/create-cluster-injection-token.ts b/src/common/cluster/create-cluster-injection-token.ts index 5f0570d793..0508e7b325 100644 --- a/src/common/cluster/create-cluster-injection-token.ts +++ b/src/common/cluster/create-cluster-injection-token.ts @@ -7,4 +7,4 @@ import type { ClusterModel } from "../cluster-types"; import type { Cluster } from "./cluster"; export const createClusterInjectionToken = - getInjectionToken<(model: ClusterModel) => Cluster>(); + getInjectionToken<(model: ClusterModel) => Cluster>({ id: "create-cluster-token" }); diff --git a/src/common/cluster/list-namespaces.injectable.ts b/src/common/cluster/list-namespaces.injectable.ts index 4cc094dc0c..39ec2fc0d5 100644 --- a/src/common/cluster/list-namespaces.injectable.ts +++ b/src/common/cluster/list-namespaces.injectable.ts @@ -18,6 +18,7 @@ export function listNamespaces(config: KubeConfig): ListNamespaces { } const listNamespacesInjectable = getInjectable({ + id: "list-namespaces", instantiate: () => listNamespaces, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts b/src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts index 06eddb8d07..14f64d712d 100644 --- a/src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts +++ b/src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts @@ -7,6 +7,8 @@ import path from "path"; import directoryForUserDataInjectable from "../app-paths/directory-for-user-data/directory-for-user-data.injectable"; const directoryForLensLocalStorageInjectable = getInjectable({ + id: "directory-for-lens-local-storage", + instantiate: (di) => path.resolve( di.inject(directoryForUserDataInjectable), diff --git a/src/common/fs/fs.injectable.ts b/src/common/fs/fs.injectable.ts index e7f32773f9..fccb2490b9 100644 --- a/src/common/fs/fs.injectable.ts +++ b/src/common/fs/fs.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import fse from "fs-extra"; const fsInjectable = getInjectable({ + id: "fs", instantiate: () => fse, causesSideEffects: true, lifecycle: lifecycleEnum.singleton, diff --git a/src/common/fs/read-dir.injectable.ts b/src/common/fs/read-dir.injectable.ts index 501ecc1cdd..81b9c83843 100644 --- a/src/common/fs/read-dir.injectable.ts +++ b/src/common/fs/read-dir.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import fsInjectable from "./fs.injectable"; const readDirInjectable = getInjectable({ + id: "read-dir", instantiate: (di) => di.inject(fsInjectable).readdir, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/fs/read-file.injectable.ts b/src/common/fs/read-file.injectable.ts index 5e2871a03d..2c413b22a1 100644 --- a/src/common/fs/read-file.injectable.ts +++ b/src/common/fs/read-file.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import fsInjectable from "./fs.injectable"; const readFileInjectable = getInjectable({ + id: "read-file", instantiate: (di) => di.inject(fsInjectable).readFile, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/fs/read-json-file.injectable.ts b/src/common/fs/read-json-file.injectable.ts index b944decadc..d0cfcbe3b1 100644 --- a/src/common/fs/read-json-file.injectable.ts +++ b/src/common/fs/read-json-file.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import fsInjectable from "./fs.injectable"; const readJsonFileInjectable = getInjectable({ + id: "read-json-file", instantiate: (di) => di.inject(fsInjectable).readJson, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/fs/write-json-file.injectable.ts b/src/common/fs/write-json-file.injectable.ts index 7bef449444..7cb2e9f425 100644 --- a/src/common/fs/write-json-file.injectable.ts +++ b/src/common/fs/write-json-file.injectable.ts @@ -23,6 +23,8 @@ const writeJsonFile = ({ writeJson, ensureDir }: Dependencies) => async (filePat }; const writeJsonFileInjectable = getInjectable({ + id: "write-json-file", + instantiate: (di) => { const { writeJson, ensureDir } = di.inject(fsInjectable); diff --git a/src/common/hotbar-store.injectable.ts b/src/common/hotbar-store.injectable.ts index 3a20ccc4ce..d6ac508c40 100644 --- a/src/common/hotbar-store.injectable.ts +++ b/src/common/hotbar-store.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { HotbarStore } from "./hotbar-store"; const hotbarManagerInjectable = getInjectable({ + id: "hotbar-manager", instantiate: () => HotbarStore.getInstance(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/user-store/user-store.injectable.ts b/src/common/user-store/user-store.injectable.ts index 09a411d405..0d03ebf8d0 100644 --- a/src/common/user-store/user-store.injectable.ts +++ b/src/common/user-store/user-store.injectable.ts @@ -6,8 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { UserStore } from "./user-store"; const userStoreInjectable = getInjectable({ + id: "user-store", instantiate: () => UserStore.createInstance(), - lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/utils/is-allowed-resource.injectable.ts b/src/common/utils/is-allowed-resource.injectable.ts index 0b9d07d5bb..135ca456d3 100644 --- a/src/common/utils/is-allowed-resource.injectable.ts +++ b/src/common/utils/is-allowed-resource.injectable.ts @@ -10,6 +10,8 @@ export type IsAllowedResource = (resource: KubeResource) => boolean; // TODO: This injectable obscures MobX de-referencing. Make it more apparent in usage. const isAllowedResourceInjectable = getInjectable({ + id: "is-allowed-resource", + instantiate: (di) => { const allowedResources = di.inject(allowedResourcesInjectable); diff --git a/src/common/vars/is-linux.injectable.ts b/src/common/vars/is-linux.injectable.ts index a603f01951..8986aefd69 100644 --- a/src/common/vars/is-linux.injectable.ts +++ b/src/common/vars/is-linux.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { isLinux } from "../vars"; const isLinuxInjectable = getInjectable({ + id: "is-linux", instantiate: () => isLinux, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/common/vars/is-windows.injectable.ts b/src/common/vars/is-windows.injectable.ts index 76a08a4af2..2cf622472c 100644 --- a/src/common/vars/is-windows.injectable.ts +++ b/src/common/vars/is-windows.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { isWindows } from "../vars"; const isWindowsInjectable = getInjectable({ + id: "is-windows", instantiate: () => isWindows, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api.ts b/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api.ts index 53fc7dc18c..72ab74cdcb 100644 --- a/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api.ts +++ b/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api.ts @@ -2,12 +2,10 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { Injectable } from "@ogre-tools/injectable"; +import type { Injectable, TentativeTuple } from "@ogre-tools/injectable"; import { getLegacyGlobalDiForExtensionApi } from "./legacy-global-di-for-extension-api"; -type TentativeTuple = T extends object ? [T] : [undefined?]; - type FactoryType = < TInjectable extends Injectable, TInstantiationParameter, diff --git a/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api-with-modifications.ts b/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api-with-modifications.ts index 8961ea8424..679dffb3b6 100644 --- a/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api-with-modifications.ts +++ b/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api-with-modifications.ts @@ -2,11 +2,9 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { Injectable } from "@ogre-tools/injectable"; +import type { Injectable, TentativeTuple } from "@ogre-tools/injectable"; import { getLegacyGlobalDiForExtensionApi } from "./legacy-global-di-for-extension-api"; -type TentativeTuple = T extends object ? [T] : [undefined?]; - type MapInjectables = { [Key in keyof T]: T[Key] extends () => infer Res ? Res : never; }; diff --git a/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts b/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts index 30b16ac967..4505f2bb5d 100644 --- a/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts +++ b/src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts @@ -2,11 +2,9 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { Injectable } from "@ogre-tools/injectable"; +import type { Injectable, TentativeTuple } from "@ogre-tools/injectable"; import { getLegacyGlobalDiForExtensionApi } from "./legacy-global-di-for-extension-api"; -type TentativeTuple = T extends object ? [T] : [undefined?]; - export const asLegacyGlobalObjectForExtensionApi = < TInjectable extends Injectable, TInstantiationParameter, diff --git a/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts b/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts index a4d70e0dfa..ccb6403ce6 100644 --- a/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts +++ b/src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts @@ -2,11 +2,11 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; -let legacyGlobalDi: DependencyInjectionContainer; +let legacyGlobalDi: DiContainer; -export const setLegacyGlobalDiForExtensionApi = (di: DependencyInjectionContainer) => { +export const setLegacyGlobalDiForExtensionApi = (di: DiContainer) => { legacyGlobalDi = di; }; diff --git a/src/extensions/common-api/get-enabled-extensions/get-enabled-extensions.injectable.ts b/src/extensions/common-api/get-enabled-extensions/get-enabled-extensions.injectable.ts index 553c91f684..e8a2da6031 100644 --- a/src/extensions/common-api/get-enabled-extensions/get-enabled-extensions.injectable.ts +++ b/src/extensions/common-api/get-enabled-extensions/get-enabled-extensions.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import extensionsStoreInjectable from "../../extensions-store/extensions-store.injectable"; const getEnabledExtensionsInjectable = getInjectable({ + id: "get-enabled-extensions", + instantiate: (di) => () => di.inject(extensionsStoreInjectable).enabledExtensions, diff --git a/src/extensions/extension-discovery/extension-discovery.injectable.ts b/src/extensions/extension-discovery/extension-discovery.injectable.ts index 114e217270..756a47d254 100644 --- a/src/extensions/extension-discovery/extension-discovery.injectable.ts +++ b/src/extensions/extension-discovery/extension-discovery.injectable.ts @@ -14,6 +14,8 @@ import extensionPackageRootDirectoryInjectable from "../extension-installer/exte import installExtensionsInjectable from "../extension-installer/install-extensions/install-extensions.injectable"; const extensionDiscoveryInjectable = getInjectable({ + id: "extension-discovery", + instantiate: (di) => new ExtensionDiscovery({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/extensions/extension-discovery/is-compatible-bundled-extension/is-compatible-bundled-extension.injectable.ts b/src/extensions/extension-discovery/is-compatible-bundled-extension/is-compatible-bundled-extension.injectable.ts index 679bfaaf5c..ce13f84f5e 100644 --- a/src/extensions/extension-discovery/is-compatible-bundled-extension/is-compatible-bundled-extension.injectable.ts +++ b/src/extensions/extension-discovery/is-compatible-bundled-extension/is-compatible-bundled-extension.injectable.ts @@ -7,6 +7,7 @@ import { appSemVer } from "../../../common/vars"; import { isCompatibleBundledExtension } from "./is-compatible-bundled-extension"; const isCompatibleBundledExtensionInjectable = getInjectable({ + id: "is-compatible-bundled-extension", instantiate: () => isCompatibleBundledExtension({ appSemVer }), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.injectable.ts b/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.injectable.ts index d7d46bae5e..1e0d2836e5 100644 --- a/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.injectable.ts +++ b/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.injectable.ts @@ -7,6 +7,7 @@ import { appSemVer } from "../../../common/vars"; import { isCompatibleExtension } from "./is-compatible-extension"; const isCompatibleExtensionInjectable = getInjectable({ + id: "is-compatible-extension", instantiate: () => isCompatibleExtension({ appSemVer }), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extension-installation-state-store/extension-installation-state-store.injectable.ts b/src/extensions/extension-installation-state-store/extension-installation-state-store.injectable.ts index 75bd8b62a4..19b3b7f087 100644 --- a/src/extensions/extension-installation-state-store/extension-installation-state-store.injectable.ts +++ b/src/extensions/extension-installation-state-store/extension-installation-state-store.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { ExtensionInstallationStateStore } from "./extension-installation-state-store"; const extensionInstallationStateStoreInjectable = getInjectable({ + id: "extension-installation-state-store", instantiate: () => new ExtensionInstallationStateStore(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extension-installer/extension-installer.injectable.ts b/src/extensions/extension-installer/extension-installer.injectable.ts index b2850e0311..446fd996da 100644 --- a/src/extensions/extension-installer/extension-installer.injectable.ts +++ b/src/extensions/extension-installer/extension-installer.injectable.ts @@ -7,6 +7,8 @@ import { ExtensionInstaller } from "./extension-installer"; import extensionPackageRootDirectoryInjectable from "./extension-package-root-directory/extension-package-root-directory.injectable"; const extensionInstallerInjectable = getInjectable({ + id: "extension-installer", + instantiate: (di) => new ExtensionInstaller({ extensionPackageRootDirectory: di.inject( diff --git a/src/extensions/extension-installer/extension-package-root-directory/extension-package-root-directory.injectable.ts b/src/extensions/extension-installer/extension-package-root-directory/extension-package-root-directory.injectable.ts index 5aec23838b..7561bfeb75 100644 --- a/src/extensions/extension-installer/extension-package-root-directory/extension-package-root-directory.injectable.ts +++ b/src/extensions/extension-installer/extension-package-root-directory/extension-package-root-directory.injectable.ts @@ -7,6 +7,8 @@ import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; const extensionPackageRootDirectoryInjectable = getInjectable({ + id: "extension-package-root-directory", + instantiate: (di) => di.inject(directoryForUserDataInjectable), lifecycle: lifecycleEnum.singleton, diff --git a/src/extensions/extension-installer/install-extension/install-extension.injectable.ts b/src/extensions/extension-installer/install-extension/install-extension.injectable.ts index aa65117dc3..6f56a9ee90 100644 --- a/src/extensions/extension-installer/install-extension/install-extension.injectable.ts +++ b/src/extensions/extension-installer/install-extension/install-extension.injectable.ts @@ -6,8 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import extensionInstallerInjectable from "../extension-installer.injectable"; const installExtensionInjectable = getInjectable({ + id: "install-extension", instantiate: (di) => di.inject(extensionInstallerInjectable).installPackage, - lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts b/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts index 8f9936f2c2..3e9bc3f567 100644 --- a/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts +++ b/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts @@ -6,8 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import extensionInstallerInjectable from "../extension-installer.injectable"; const installExtensionsInjectable = getInjectable({ + id: "install-extensions", instantiate: (di) => di.inject(extensionInstallerInjectable).installPackages, - lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extension-loader/create-extension-instance/create-extension-instance.injectable.ts b/src/extensions/extension-loader/create-extension-instance/create-extension-instance.injectable.ts index 9080e5542e..6df5dc7fe7 100644 --- a/src/extensions/extension-loader/create-extension-instance/create-extension-instance.injectable.ts +++ b/src/extensions/extension-loader/create-extension-instance/create-extension-instance.injectable.ts @@ -7,6 +7,8 @@ import { createExtensionInstance } from "./create-extension-instance"; import fileSystemProvisionerStoreInjectable from "./file-system-provisioner-store/file-system-provisioner-store.injectable"; const createExtensionInstanceInjectable = getInjectable({ + id: "create-extension-instance", + instantiate: (di) => createExtensionInstance({ fileSystemProvisionerStore: di.inject(fileSystemProvisionerStoreInjectable), }), diff --git a/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/directory-for-extension-data/directory-for-extension-data.injectable.ts b/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/directory-for-extension-data/directory-for-extension-data.injectable.ts index 07cff5a4f1..1d4ced9281 100644 --- a/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/directory-for-extension-data/directory-for-extension-data.injectable.ts +++ b/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/directory-for-extension-data/directory-for-extension-data.injectable.ts @@ -7,6 +7,8 @@ import path from "path"; import directoryForUserDataInjectable from "../../../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; const directoryForExtensionDataInjectable = getInjectable({ + id: "directory-for-extension-data", + instantiate: (di) => path.join(di.inject(directoryForUserDataInjectable), "extension_data"), diff --git a/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/file-system-provisioner-store.injectable.ts b/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/file-system-provisioner-store.injectable.ts index a61bc59b43..8b00b4ea87 100644 --- a/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/file-system-provisioner-store.injectable.ts +++ b/src/extensions/extension-loader/create-extension-instance/file-system-provisioner-store/file-system-provisioner-store.injectable.ts @@ -7,6 +7,8 @@ import { FileSystemProvisionerStore } from "./file-system-provisioner-store"; import directoryForExtensionDataInjectable from "./directory-for-extension-data/directory-for-extension-data.injectable"; const fileSystemProvisionerStoreInjectable = getInjectable({ + id: "file-system-provisioner-store", + instantiate: (di) => FileSystemProvisionerStore.createInstance({ directoryForExtensionData: di.inject( diff --git a/src/extensions/extension-loader/extension-loader.injectable.ts b/src/extensions/extension-loader/extension-loader.injectable.ts index 16afc58ed6..1ed7578264 100644 --- a/src/extensions/extension-loader/extension-loader.injectable.ts +++ b/src/extensions/extension-loader/extension-loader.injectable.ts @@ -9,6 +9,8 @@ import createExtensionInstanceInjectable from "./create-extension-instance/create-extension-instance.injectable"; const extensionLoaderInjectable = getInjectable({ + id: "extension-loader", + instantiate: (di) => new ExtensionLoader({ updateExtensionsState: di.inject(updateExtensionsStateInjectable), diff --git a/src/extensions/extension-loader/update-extensions-state/update-extensions-state.injectable.ts b/src/extensions/extension-loader/update-extensions-state/update-extensions-state.injectable.ts index 2627eab89c..be7049f76c 100644 --- a/src/extensions/extension-loader/update-extensions-state/update-extensions-state.injectable.ts +++ b/src/extensions/extension-loader/update-extensions-state/update-extensions-state.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import extensionsStoreInjectable from "../../extensions-store/extensions-store.injectable"; const updateExtensionsStateInjectable = getInjectable({ + id: "upadte-extensions-state", instantiate: (di) => di.inject(extensionsStoreInjectable).mergeState, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extension-packages-root/extension-packages-root.injectable.ts b/src/extensions/extension-packages-root/extension-packages-root.injectable.ts index 566437bdeb..4a88f20a30 100644 --- a/src/extensions/extension-packages-root/extension-packages-root.injectable.ts +++ b/src/extensions/extension-packages-root/extension-packages-root.injectable.ts @@ -7,6 +7,7 @@ import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; const extensionPackagesRootInjectable = getInjectable({ + id: "extension-packages-root", instantiate: (di) => di.inject(directoryForUserDataInjectable), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extensions-store/extensions-store.injectable.ts b/src/extensions/extensions-store/extensions-store.injectable.ts index 764116d372..691d37bbf4 100644 --- a/src/extensions/extensions-store/extensions-store.injectable.ts +++ b/src/extensions/extensions-store/extensions-store.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { ExtensionsStore } from "./extensions-store"; const extensionsStoreInjectable = getInjectable({ + id: "extensions-store", instantiate: () => ExtensionsStore.createInstance(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/extensions/extensions.injectable.ts b/src/extensions/extensions.injectable.ts index fc02820e6c..69763bc305 100644 --- a/src/extensions/extensions.injectable.ts +++ b/src/extensions/extensions.injectable.ts @@ -7,6 +7,8 @@ import { computed } from "mobx"; import extensionLoaderInjectable from "./extension-loader/extension-loader.injectable"; const extensionsInjectable = getInjectable({ + id: "extensions", + instantiate: (di) => { const extensionLoader = di.inject(extensionLoaderInjectable); diff --git a/src/extensions/main-extensions.injectable.ts b/src/extensions/main-extensions.injectable.ts index 3cec8b3a56..0f8dd9b864 100644 --- a/src/extensions/main-extensions.injectable.ts +++ b/src/extensions/main-extensions.injectable.ts @@ -8,6 +8,7 @@ import extensionsInjectable from "./extensions.injectable"; import type { LensMainExtension } from "./lens-main-extension"; const mainExtensionsInjectable = getInjectable({ + id: "main-extensions", lifecycle: lifecycleEnum.singleton, instantiate: (di) => diff --git a/src/extensions/renderer-extensions.injectable.ts b/src/extensions/renderer-extensions.injectable.ts index 3f06df5ca8..02b9b2465e 100644 --- a/src/extensions/renderer-extensions.injectable.ts +++ b/src/extensions/renderer-extensions.injectable.ts @@ -8,6 +8,7 @@ import extensionsInjectable from "./extensions.injectable"; import type { LensRendererExtension } from "./lens-renderer-extension"; const rendererExtensionsInjectable = getInjectable({ + id: "renderer-extensions", instantiate: (di) => di.inject(extensionsInjectable) as IComputedValue, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/main/app-paths/app-name/app-name.injectable.ts b/src/main/app-paths/app-name/app-name.injectable.ts index eb8169bda2..fa39cec302 100644 --- a/src/main/app-paths/app-name/app-name.injectable.ts +++ b/src/main/app-paths/app-name/app-name.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import electronAppInjectable from "../get-electron-app-path/electron-app/electron-app.injectable"; const appNameInjectable = getInjectable({ + id: "app-name", instantiate: (di) => di.inject(electronAppInjectable).name, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/main/app-paths/app-paths.injectable.ts b/src/main/app-paths/app-paths.injectable.ts index 0c32f79a0b..e32302ce21 100644 --- a/src/main/app-paths/app-paths.injectable.ts +++ b/src/main/app-paths/app-paths.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { - DependencyInjectionContainer, + DiContainerForSetup, getInjectable, lifecycleEnum, } from "@ogre-tools/injectable"; @@ -22,17 +22,19 @@ import appNameInjectable from "./app-name/app-name.injectable"; import directoryForIntegrationTestingInjectable from "./directory-for-integration-testing/directory-for-integration-testing.injectable"; const appPathsInjectable = getInjectable({ - setup: (di) => { - const directoryForIntegrationTesting = di.inject( + id: "app-paths", + + setup: async (di) => { + const directoryForIntegrationTesting = await di.inject( directoryForIntegrationTestingInjectable, ); if (directoryForIntegrationTesting) { - setupPathForAppDataInIntegrationTesting(di, directoryForIntegrationTesting); + await setupPathForAppDataInIntegrationTesting(di, directoryForIntegrationTesting); } - setupPathForUserData(di); - registerAppPathsChannel(di); + await setupPathForUserData(di); + await registerAppPathsChannel(di); }, instantiate: (di) => @@ -44,16 +46,17 @@ const appPathsInjectable = getInjectable({ export default appPathsInjectable; -const registerAppPathsChannel = (di: DependencyInjectionContainer) => { - const registerChannel = di.inject(registerChannelInjectable); +const registerAppPathsChannel = async (di: DiContainerForSetup) => { + const registerChannel = await di.inject(registerChannelInjectable); + const appPaths = await di.inject(appPathsInjectable); - registerChannel(appPathsIpcChannel, () => di.inject(appPathsInjectable)); + registerChannel(appPathsIpcChannel, () => appPaths); }; -const setupPathForUserData = (di: DependencyInjectionContainer) => { - const setElectronAppPath = di.inject(setElectronAppPathInjectable); - const appName = di.inject(appNameInjectable); - const getAppPath = di.inject(getElectronAppPathInjectable); +const setupPathForUserData = async (di: DiContainerForSetup) => { + const setElectronAppPath = await di.inject(setElectronAppPathInjectable); + const appName = await di.inject(appNameInjectable); + const getAppPath = await di.inject(getElectronAppPathInjectable); const appDataPath = getAppPath("appData"); @@ -61,8 +64,8 @@ const setupPathForUserData = (di: DependencyInjectionContainer) => { }; // Todo: this kludge is here only until we have a proper place to setup integration testing. -const setupPathForAppDataInIntegrationTesting = (di: DependencyInjectionContainer, appDataPath: string) => { - const setElectronAppPath = di.inject(setElectronAppPathInjectable); +const setupPathForAppDataInIntegrationTesting = async (di: DiContainerForSetup, appDataPath: string) => { + const setElectronAppPath = await di.inject(setElectronAppPathInjectable); setElectronAppPath("appData", appDataPath); }; diff --git a/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts b/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts index 1b036726c6..196631db8c 100644 --- a/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts +++ b/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts @@ -5,6 +5,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; const directoryForIntegrationTestingInjectable = getInjectable({ + id: "directory-for-integration-testing", instantiate: () => process.env.CICD, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/main/app-paths/get-electron-app-path/electron-app/electron-app.injectable.ts b/src/main/app-paths/get-electron-app-path/electron-app/electron-app.injectable.ts index 9c5ccd45c5..db28275f52 100644 --- a/src/main/app-paths/get-electron-app-path/electron-app/electron-app.injectable.ts +++ b/src/main/app-paths/get-electron-app-path/electron-app/electron-app.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { app } from "electron"; const electronAppInjectable = getInjectable({ + id: "electron-app", instantiate: () => app, lifecycle: lifecycleEnum.singleton, causesSideEffects: true, diff --git a/src/main/app-paths/get-electron-app-path/get-electron-app-path.injectable.ts b/src/main/app-paths/get-electron-app-path/get-electron-app-path.injectable.ts index 0861f6c3a9..19941afff6 100644 --- a/src/main/app-paths/get-electron-app-path/get-electron-app-path.injectable.ts +++ b/src/main/app-paths/get-electron-app-path/get-electron-app-path.injectable.ts @@ -7,6 +7,8 @@ import electronAppInjectable from "./electron-app/electron-app.injectable"; import { getElectronAppPath } from "./get-electron-app-path"; const getElectronAppPathInjectable = getInjectable({ + id: "get-electron-app-path", + instantiate: (di) => getElectronAppPath({ app: di.inject(electronAppInjectable) }), diff --git a/src/main/app-paths/register-channel/ipc-main/ipc-main.injectable.ts b/src/main/app-paths/register-channel/ipc-main/ipc-main.injectable.ts index 2b1a43fc55..cc8b42f4d9 100644 --- a/src/main/app-paths/register-channel/ipc-main/ipc-main.injectable.ts +++ b/src/main/app-paths/register-channel/ipc-main/ipc-main.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { ipcMain } from "electron"; const ipcMainInjectable = getInjectable({ + id: "ipc-main", instantiate: () => ipcMain, lifecycle: lifecycleEnum.singleton, causesSideEffects: true, diff --git a/src/main/app-paths/register-channel/register-channel.injectable.ts b/src/main/app-paths/register-channel/register-channel.injectable.ts index a52662687c..725214285b 100644 --- a/src/main/app-paths/register-channel/register-channel.injectable.ts +++ b/src/main/app-paths/register-channel/register-channel.injectable.ts @@ -7,6 +7,8 @@ import ipcMainInjectable from "./ipc-main/ipc-main.injectable"; import { registerChannel } from "./register-channel"; const registerChannelInjectable = getInjectable({ + id: "register-channel", + instantiate: (di) => registerChannel({ ipcMain: di.inject(ipcMainInjectable), }), diff --git a/src/main/app-paths/set-electron-app-path/set-electron-app-path.injectable.ts b/src/main/app-paths/set-electron-app-path/set-electron-app-path.injectable.ts index ade45238cf..51272a6d69 100644 --- a/src/main/app-paths/set-electron-app-path/set-electron-app-path.injectable.ts +++ b/src/main/app-paths/set-electron-app-path/set-electron-app-path.injectable.ts @@ -7,6 +7,8 @@ import type { PathName } from "../../../common/app-paths/app-path-names"; import electronAppInjectable from "../get-electron-app-path/electron-app/electron-app.injectable"; const setElectronAppPathInjectable = getInjectable({ + id: "set-electron-app-path", + instantiate: (di) => (name: PathName, path: string) : void => di.inject(electronAppInjectable).setPath(name, path), diff --git a/src/main/catalog-sources/kubeconfig-sync-manager/kubeconfig-sync-manager.injectable.ts b/src/main/catalog-sources/kubeconfig-sync-manager/kubeconfig-sync-manager.injectable.ts index 6560e3854d..7d2658bd18 100644 --- a/src/main/catalog-sources/kubeconfig-sync-manager/kubeconfig-sync-manager.injectable.ts +++ b/src/main/catalog-sources/kubeconfig-sync-manager/kubeconfig-sync-manager.injectable.ts @@ -8,6 +8,8 @@ import { KubeconfigSyncManager } from "./kubeconfig-sync-manager"; import { createClusterInjectionToken } from "../../../common/cluster/create-cluster-injection-token"; const kubeconfigSyncManagerInjectable = getInjectable({ + id: "kubeconfig-sync-manager", + instantiate: (di) => new KubeconfigSyncManager({ directoryForKubeConfigs: di.inject(directoryForKubeConfigsInjectable), createCluster: di.inject(createClusterInjectionToken), diff --git a/src/main/context-handler/create-context-handler.injectable.ts b/src/main/context-handler/create-context-handler.injectable.ts index e6a7df9b8a..80a43db6ae 100644 --- a/src/main/context-handler/create-context-handler.injectable.ts +++ b/src/main/context-handler/create-context-handler.injectable.ts @@ -8,6 +8,8 @@ import { ContextHandler } from "./context-handler"; import createKubeAuthProxyInjectable from "../kube-auth-proxy/create-kube-auth-proxy.injectable"; const createContextHandlerInjectable = getInjectable({ + id: "create-context-handler", + instantiate: (di) => { const dependencies = { createKubeAuthProxy: di.inject(createKubeAuthProxyInjectable), diff --git a/src/main/create-cluster/create-cluster.injectable.ts b/src/main/create-cluster/create-cluster.injectable.ts index be7c2a7953..64db47bddc 100644 --- a/src/main/create-cluster/create-cluster.injectable.ts +++ b/src/main/create-cluster/create-cluster.injectable.ts @@ -13,6 +13,8 @@ import authorizationReviewInjectable from "../../common/cluster/authorization-re import listNamespacesInjectable from "../../common/cluster/list-namespaces.injectable"; const createClusterInjectable = getInjectable({ + id: "create-cluster", + instantiate: (di) => { const dependencies: ClusterDependencies = { directoryForKubeConfigs: di.inject(directoryForKubeConfigsInjectable), diff --git a/src/main/getDiForUnitTesting.ts b/src/main/getDiForUnitTesting.ts index ae71fb9618..c5c156fa11 100644 --- a/src/main/getDiForUnitTesting.ts +++ b/src/main/getDiForUnitTesting.ts @@ -27,7 +27,6 @@ export const getDiForUnitTesting = ( const injectableInstance = require(filePath).default; di.register({ - id: filePath, ...injectableInstance, aliases: [injectableInstance, ...(injectableInstance.aliases || [])], }); diff --git a/src/main/initializers/init-ipc-main-handlers/init-ipc-main-handlers.injectable.ts b/src/main/initializers/init-ipc-main-handlers/init-ipc-main-handlers.injectable.ts index 5a9950e189..b45b9b47a4 100644 --- a/src/main/initializers/init-ipc-main-handlers/init-ipc-main-handlers.injectable.ts +++ b/src/main/initializers/init-ipc-main-handlers/init-ipc-main-handlers.injectable.ts @@ -9,6 +9,8 @@ import directoryForLensLocalStorageInjectable import { initIpcMainHandlers } from "./init-ipc-main-handlers"; const initIpcMainHandlersInjectable = getInjectable({ + id: "init-ipc-main-handlers", + instantiate: (di) => initIpcMainHandlers({ electronMenuItems: di.inject(electronMenuItemsInjectable), directoryForLensLocalStorage: di.inject(directoryForLensLocalStorageInjectable), diff --git a/src/main/kube-auth-proxy/create-kube-auth-proxy.injectable.ts b/src/main/kube-auth-proxy/create-kube-auth-proxy.injectable.ts index 129d7b3eb9..afb3f1485e 100644 --- a/src/main/kube-auth-proxy/create-kube-auth-proxy.injectable.ts +++ b/src/main/kube-auth-proxy/create-kube-auth-proxy.injectable.ts @@ -8,6 +8,8 @@ import type { Cluster } from "../../common/cluster/cluster"; import bundledKubectlInjectable from "../kubectl/bundled-kubectl.injectable"; const createKubeAuthProxyInjectable = getInjectable({ + id: "create-kube-auth-proxy", + instantiate: (di) => { const bundledKubectl = di.inject(bundledKubectlInjectable); diff --git a/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts b/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts index 49eb4681e5..e49f8f204e 100644 --- a/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts +++ b/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts @@ -12,6 +12,8 @@ export interface KubeConfigManagerInstantiationParameter { } const createKubeconfigManagerInjectable = getInjectable({ + id: "create-kubeconfig-manager", + instantiate: (di) => { const dependencies = { directoryForTemp: di.inject(directoryForTempInjectable), diff --git a/src/main/kubectl/bundled-kubectl.injectable.ts b/src/main/kubectl/bundled-kubectl.injectable.ts index 47d42741c0..8b4e3d60c7 100644 --- a/src/main/kubectl/bundled-kubectl.injectable.ts +++ b/src/main/kubectl/bundled-kubectl.injectable.ts @@ -7,6 +7,8 @@ import { getBundledKubectlVersion } from "../../common/utils"; import createKubectlInjectable from "./create-kubectl.injectable"; const bundledKubectlInjectable = getInjectable({ + id: "bundled-kubectl", + instantiate: (di) => { const createKubectl = di.inject(createKubectlInjectable); diff --git a/src/main/kubectl/create-kubectl.injectable.ts b/src/main/kubectl/create-kubectl.injectable.ts index 305427da1a..3bb850b77e 100644 --- a/src/main/kubectl/create-kubectl.injectable.ts +++ b/src/main/kubectl/create-kubectl.injectable.ts @@ -8,6 +8,8 @@ import directoryForKubectlBinariesInjectable from "./directory-for-kubectl-binar import userStoreInjectable from "../../common/user-store/user-store.injectable"; const createKubectlInjectable = getInjectable({ + id: "create-kubectl", + instantiate: (di) => { const dependencies = { userStore: di.inject(userStoreInjectable), diff --git a/src/main/kubectl/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts b/src/main/kubectl/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts index 1757f06c2a..5d9534e64a 100644 --- a/src/main/kubectl/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts +++ b/src/main/kubectl/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts @@ -7,9 +7,11 @@ import directoryForBinariesInjectable from "../../../common/app-paths/directory- import path from "path"; const directoryForKubectlBinariesInjectable = getInjectable({ + id: "directory-for-kubectl-binaries", + instantiate: (di) => path.join(di.inject(directoryForBinariesInjectable), "kubectl"), - + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/main/menu/electron-menu-items.injectable.ts b/src/main/menu/electron-menu-items.injectable.ts index e62b34afe6..04cc8bc724 100644 --- a/src/main/menu/electron-menu-items.injectable.ts +++ b/src/main/menu/electron-menu-items.injectable.ts @@ -7,6 +7,7 @@ import { computed } from "mobx"; import mainExtensionsInjectable from "../../extensions/main-extensions.injectable"; const electronMenuItemsInjectable = getInjectable({ + id: "electron-menu-items", lifecycle: lifecycleEnum.singleton, instantiate: (di) => { diff --git a/src/main/menu/electron-menu-items.test.ts b/src/main/menu/electron-menu-items.test.ts index 4eeee205cd..b1b2dd61b1 100644 --- a/src/main/menu/electron-menu-items.test.ts +++ b/src/main/menu/electron-menu-items.test.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { LensMainExtension } from "../../extensions/lens-main-extension"; import electronMenuItemsInjectable from "./electron-menu-items.injectable"; import type { IComputedValue } from "mobx"; @@ -12,7 +12,7 @@ import { getDiForUnitTesting } from "../getDiForUnitTesting"; import mainExtensionsInjectable from "../../extensions/main-extensions.injectable"; describe("electron-menu-items", () => { - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; let electronMenuItems: IComputedValue; let extensionsStub: ObservableMap; diff --git a/src/main/protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable.ts b/src/main/protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable.ts index 59afdb1668..59a09ffdd0 100644 --- a/src/main/protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable.ts +++ b/src/main/protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable.ts @@ -8,6 +8,8 @@ import { LensProtocolRouterMain } from "./lens-protocol-router-main"; import extensionsStoreInjectable from "../../../extensions/extensions-store/extensions-store.injectable"; const lensProtocolRouterMainInjectable = getInjectable({ + id: "lens-protocol-router-main", + instantiate: (di) => new LensProtocolRouterMain({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/main/proxy-functions/shell-api-request/shell-api-request.injectable.ts b/src/main/proxy-functions/shell-api-request/shell-api-request.injectable.ts index c584cd35ea..0ead82c238 100644 --- a/src/main/proxy-functions/shell-api-request/shell-api-request.injectable.ts +++ b/src/main/proxy-functions/shell-api-request/shell-api-request.injectable.ts @@ -9,6 +9,8 @@ import shellRequestAuthenticatorInjectable from "./shell-request-authenticator/shell-request-authenticator.injectable"; const shellApiRequestInjectable = getInjectable({ + id: "shell-api-request", + instantiate: (di) => shellApiRequest({ createShellSession: di.inject(createShellSessionInjectable), authenticateRequest: di.inject(shellRequestAuthenticatorInjectable).authenticate, diff --git a/src/main/proxy-functions/shell-api-request/shell-request-authenticator/shell-request-authenticator.injectable.ts b/src/main/proxy-functions/shell-api-request/shell-request-authenticator/shell-request-authenticator.injectable.ts index 708cf4e277..bdf24406a6 100644 --- a/src/main/proxy-functions/shell-api-request/shell-request-authenticator/shell-request-authenticator.injectable.ts +++ b/src/main/proxy-functions/shell-api-request/shell-request-authenticator/shell-request-authenticator.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { ShellRequestAuthenticator } from "./shell-request-authenticator"; const shellRequestAuthenticatorInjectable = getInjectable({ + id: "shell-request-authenticator", + instantiate: () => { const authenticator = new ShellRequestAuthenticator(); diff --git a/src/main/router/router.injectable.ts b/src/main/router/router.injectable.ts index f5a28fd08a..291f8c7c88 100644 --- a/src/main/router/router.injectable.ts +++ b/src/main/router/router.injectable.ts @@ -8,6 +8,8 @@ import routePortForwardInjectable from "../routes/port-forward/route-port-forward/route-port-forward.injectable"; const routerInjectable = getInjectable({ + id: "router", + instantiate: (di) => new Router({ routePortForward: di.inject(routePortForwardInjectable), }), diff --git a/src/main/routes/port-forward/create-port-forward.injectable.ts b/src/main/routes/port-forward/create-port-forward.injectable.ts index b74f724ae3..c3e487e415 100644 --- a/src/main/routes/port-forward/create-port-forward.injectable.ts +++ b/src/main/routes/port-forward/create-port-forward.injectable.ts @@ -7,6 +7,8 @@ import { PortForward, PortForwardArgs } from "./port-forward"; import bundledKubectlInjectable from "../../kubectl/bundled-kubectl.injectable"; const createPortForwardInjectable = getInjectable({ + id: "create-port-forward", + instantiate: (di) => { const bundledKubectl = di.inject(bundledKubectlInjectable); diff --git a/src/main/routes/port-forward/route-port-forward/route-port-forward.injectable.ts b/src/main/routes/port-forward/route-port-forward/route-port-forward.injectable.ts index 6b00e8f2b5..5063bce8b7 100644 --- a/src/main/routes/port-forward/route-port-forward/route-port-forward.injectable.ts +++ b/src/main/routes/port-forward/route-port-forward/route-port-forward.injectable.ts @@ -7,6 +7,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import createPortForwardInjectable from "../create-port-forward.injectable"; const routePortForwardInjectable = getInjectable({ + id: "route-port-forward", + instantiate: (di) => routePortForward({ createPortForward: di.inject(createPortForwardInjectable), }), diff --git a/src/main/shell-session/create-shell-session.injectable.ts b/src/main/shell-session/create-shell-session.injectable.ts index 47dba89f04..34947a1e82 100644 --- a/src/main/shell-session/create-shell-session.injectable.ts +++ b/src/main/shell-session/create-shell-session.injectable.ts @@ -16,6 +16,8 @@ interface Args { } const createShellSessionInjectable = getInjectable({ + id: "create-shell-session", + instantiate: (di) => ({ nodeName, ...rest }: Args) => diff --git a/src/main/shell-session/local-shell-session/local-shell-session.injectable.ts b/src/main/shell-session/local-shell-session/local-shell-session.injectable.ts index 2578cc106d..ed9b86819b 100644 --- a/src/main/shell-session/local-shell-session/local-shell-session.injectable.ts +++ b/src/main/shell-session/local-shell-session/local-shell-session.injectable.ts @@ -16,6 +16,8 @@ interface InstantiationParameter { } const localShellSessionInjectable = getInjectable({ + id: "local-shell-session", + instantiate: (di, { cluster, tabId, webSocket }: InstantiationParameter) => { const createKubectl = di.inject(createKubectlInjectable); const localShellEnvModify = di.inject(terminalShellEnvModifiersInjectable); diff --git a/src/main/shell-session/node-shell-session/node-shell-session.injectable.ts b/src/main/shell-session/node-shell-session/node-shell-session.injectable.ts index aa57a2ed8a..e2514708e6 100644 --- a/src/main/shell-session/node-shell-session/node-shell-session.injectable.ts +++ b/src/main/shell-session/node-shell-session/node-shell-session.injectable.ts @@ -16,6 +16,8 @@ interface InstantiationParameter { } const nodeShellSessionInjectable = getInjectable({ + id: "node-shell-session", + instantiate: (di, { cluster, tabId, webSocket, nodeName }: InstantiationParameter) => { const createKubectl = di.inject(createKubectlInjectable); diff --git a/src/main/tray/tray-menu-items.injectable.ts b/src/main/tray/tray-menu-items.injectable.ts index 5b3f5593f1..7512591fc2 100644 --- a/src/main/tray/tray-menu-items.injectable.ts +++ b/src/main/tray/tray-menu-items.injectable.ts @@ -7,6 +7,8 @@ import { computed } from "mobx"; import mainExtensionsInjectable from "../../extensions/main-extensions.injectable"; const trayItemsInjectable = getInjectable({ + id: "tray-items", + lifecycle: lifecycleEnum.singleton, instantiate: (di) => { diff --git a/src/main/tray/tray-menu-items.test.ts b/src/main/tray/tray-menu-items.test.ts index 72d33cf94a..da9f2f2745 100644 --- a/src/main/tray/tray-menu-items.test.ts +++ b/src/main/tray/tray-menu-items.test.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { LensMainExtension } from "../../extensions/lens-main-extension"; import trayItemsInjectable from "./tray-menu-items.injectable"; import type { IComputedValue } from "mobx"; @@ -12,7 +12,7 @@ import mainExtensionsInjectable from "../../extensions/main-extensions.injectabl import type { TrayMenuRegistration } from "./tray-menu-registration"; describe("tray-menu-items", () => { - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; let trayMenuItems: IComputedValue; let extensionsStub: ObservableMap; diff --git a/src/renderer/api/catalog-entity-registry/catalog-entity-registry.injectable.ts b/src/renderer/api/catalog-entity-registry/catalog-entity-registry.injectable.ts index efdecf8bc5..3544b3413d 100644 --- a/src/renderer/api/catalog-entity-registry/catalog-entity-registry.injectable.ts +++ b/src/renderer/api/catalog-entity-registry/catalog-entity-registry.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { catalogEntityRegistry } from "../catalog-entity-registry"; const catalogEntityRegistryInjectable = getInjectable({ + id: "catalog-entity-registry", instantiate: () => catalogEntityRegistry, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/app-paths/app-paths.injectable.ts b/src/renderer/app-paths/app-paths.injectable.ts index a645b9a811..6ce43d5b59 100644 --- a/src/renderer/app-paths/app-paths.injectable.ts +++ b/src/renderer/app-paths/app-paths.injectable.ts @@ -9,8 +9,10 @@ import getValueFromRegisteredChannelInjectable from "./get-value-from-registered let syncAppPaths: AppPaths; const appPathsInjectable = getInjectable({ + id: "app-paths", + setup: async (di) => { - const getValueFromRegisteredChannel = di.inject( + const getValueFromRegisteredChannel = await di.inject( getValueFromRegisteredChannelInjectable, ); diff --git a/src/renderer/app-paths/get-value-from-registered-channel/get-value-from-registered-channel.injectable.ts b/src/renderer/app-paths/get-value-from-registered-channel/get-value-from-registered-channel.injectable.ts index e1f6cfec12..73c0b89247 100644 --- a/src/renderer/app-paths/get-value-from-registered-channel/get-value-from-registered-channel.injectable.ts +++ b/src/renderer/app-paths/get-value-from-registered-channel/get-value-from-registered-channel.injectable.ts @@ -7,6 +7,8 @@ import ipcRendererInjectable from "./ipc-renderer/ipc-renderer.injectable"; import { getValueFromRegisteredChannel } from "./get-value-from-registered-channel"; const getValueFromRegisteredChannelInjectable = getInjectable({ + id: "get-value-from-registered-channel", + instantiate: (di) => getValueFromRegisteredChannel({ ipcRenderer: di.inject(ipcRendererInjectable) }), diff --git a/src/renderer/app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable.ts b/src/renderer/app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable.ts index 1549bb4f95..0ecd08b8cb 100644 --- a/src/renderer/app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable.ts +++ b/src/renderer/app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { ipcRenderer } from "electron"; const ipcRendererInjectable = getInjectable({ + id: "ipc-renderer", instantiate: () => ipcRenderer, lifecycle: lifecycleEnum.singleton, causesSideEffects: true, diff --git a/src/renderer/bootstrap.tsx b/src/renderer/bootstrap.tsx index 5593134586..324e623383 100644 --- a/src/renderer/bootstrap.tsx +++ b/src/renderer/bootstrap.tsx @@ -27,7 +27,7 @@ import { SentryInit } from "../common/sentry"; import { registerCustomThemes } from "./components/monaco-editor"; import { getDi } from "./getDi"; import { DiContextProvider } from "@ogre-tools/injectable-react"; -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../extensions/extension-loader/extension-loader.injectable"; import extensionDiscoveryInjectable from "../extensions/extension-discovery/extension-discovery.injectable"; import extensionInstallationStateStoreInjectable from "../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; @@ -55,7 +55,7 @@ async function attachChromeDebugger() { } } -export async function bootstrap(di: DependencyInjectionContainer) { +export async function bootstrap(di: DiContainer) { await di.runSetups(); const rootElem = document.getElementById("app"); diff --git a/src/renderer/cluster-frame-context/cluster-frame-context.injectable.ts b/src/renderer/cluster-frame-context/cluster-frame-context.injectable.ts index da139cf8b0..3ada2efe8d 100644 --- a/src/renderer/cluster-frame-context/cluster-frame-context.injectable.ts +++ b/src/renderer/cluster-frame-context/cluster-frame-context.injectable.ts @@ -8,6 +8,8 @@ import namespaceStoreInjectable from "../components/+namespaces/namespace-store/ import hostedClusterInjectable from "../../common/cluster-store/hosted-cluster.injectable"; const clusterFrameContextInjectable = getInjectable({ + id: "cluster-frame-context", + instantiate: (di) => { const cluster = di.inject(hostedClusterInjectable); diff --git a/src/renderer/components/+catalog/__tests__/custom-columns.test.ts b/src/renderer/components/+catalog/__tests__/custom-columns.test.ts index 00fd5e033b..1ef7bef199 100644 --- a/src/renderer/components/+catalog/__tests__/custom-columns.test.ts +++ b/src/renderer/components/+catalog/__tests__/custom-columns.test.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { CatalogCategorySpec } from "../../../../common/catalog"; import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; @@ -35,7 +35,7 @@ class TestCategory extends CatalogCategory { } describe("Custom Category Columns", () => { - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; beforeEach(() => { di = getDiForUnitTesting(); diff --git a/src/renderer/components/+catalog/__tests__/custom-views.test.ts b/src/renderer/components/+catalog/__tests__/custom-views.test.ts index af2dad0f55..84a0b6f3a4 100644 --- a/src/renderer/components/+catalog/__tests__/custom-views.test.ts +++ b/src/renderer/components/+catalog/__tests__/custom-views.test.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type React from "react"; import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; @@ -13,7 +13,7 @@ import type { CustomCategoryViewRegistration } from "../custom-views"; import customCategoryViewsInjectable from "../custom-views.injectable"; describe("Custom Category Views", () => { - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; beforeEach(() => { di = getDiForUnitTesting(); diff --git a/src/renderer/components/+catalog/catalog-entity-store/catalog-entity-store.injectable.ts b/src/renderer/components/+catalog/catalog-entity-store/catalog-entity-store.injectable.ts index 4c2ef25c2a..822cd51869 100644 --- a/src/renderer/components/+catalog/catalog-entity-store/catalog-entity-store.injectable.ts +++ b/src/renderer/components/+catalog/catalog-entity-store/catalog-entity-store.injectable.ts @@ -7,6 +7,8 @@ import { CatalogEntityStore } from "./catalog-entity.store"; import catalogEntityRegistryInjectable from "../../../api/catalog-entity-registry/catalog-entity-registry.injectable"; const catalogEntityStoreInjectable = getInjectable({ + id: "catalog-entity-store", + instantiate: (di) => new CatalogEntityStore({ registry: di.inject(catalogEntityRegistryInjectable), }), diff --git a/src/renderer/components/+catalog/catalog-previous-active-tab-storage/catalog-previous-active-tab-storage.injectable.ts b/src/renderer/components/+catalog/catalog-previous-active-tab-storage/catalog-previous-active-tab-storage.injectable.ts index d28b6fb89d..2d471cc80c 100644 --- a/src/renderer/components/+catalog/catalog-previous-active-tab-storage/catalog-previous-active-tab-storage.injectable.ts +++ b/src/renderer/components/+catalog/catalog-previous-active-tab-storage/catalog-previous-active-tab-storage.injectable.ts @@ -7,6 +7,8 @@ import { browseCatalogTab } from "../../../../common/routes"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const catalogPreviousActiveTabStorageInjectable = getInjectable({ + id: "catalog-previous-active-tab-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/+catalog/catalog.test.tsx b/src/renderer/components/+catalog/catalog.test.tsx index e0ae3d217e..cac9143e54 100644 --- a/src/renderer/components/+catalog/catalog.test.tsx +++ b/src/renderer/components/+catalog/catalog.test.tsx @@ -14,7 +14,7 @@ import { CatalogEntityRegistry } from "../../api/catalog-entity-registry"; import { CatalogEntityDetailRegistry } from "../../../extensions/registries"; import type { CatalogEntityStore } from "./catalog-entity-store/catalog-entity.store"; import { getDiForUnitTesting } from "../../getDiForUnitTesting"; -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import catalogEntityStoreInjectable from "./catalog-entity-store/catalog-entity-store.injectable"; import catalogEntityRegistryInjectable from "../../api/catalog-entity-registry/catalog-entity-registry.injectable"; @@ -95,7 +95,7 @@ describe("", () => { }, onRun); } - let di: DependencyInjectionContainer; + let di: DiContainer; let catalogEntityStore: CatalogEntityStore; let catalogEntityRegistry: CatalogEntityRegistry; let render: DiRender; diff --git a/src/renderer/components/+catalog/custom-category-columns.injectable.tsx b/src/renderer/components/+catalog/custom-category-columns.injectable.tsx index 2d315f383a..eaf0e3db07 100644 --- a/src/renderer/components/+catalog/custom-category-columns.injectable.tsx +++ b/src/renderer/components/+catalog/custom-category-columns.injectable.tsx @@ -45,9 +45,12 @@ function getAdditionCategoryColumns({ extensions }: Dependencies): IComputedValu } const categoryColumnsInjectable = getInjectable({ + id: "category-columns", + instantiate: (di) => getAdditionCategoryColumns({ extensions: di.inject(rendererExtensionsInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+catalog/custom-views.injectable.ts b/src/renderer/components/+catalog/custom-views.injectable.ts index 70fbd6457a..abd0821cd1 100644 --- a/src/renderer/components/+catalog/custom-views.injectable.ts +++ b/src/renderer/components/+catalog/custom-views.injectable.ts @@ -49,9 +49,12 @@ function getCustomCategoryViews({ extensions }: Dependencies): IComputedValue getCustomCategoryViews({ extensions: di.inject(rendererExtensionsInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+catalog/get-category-columns.injectable.ts b/src/renderer/components/+catalog/get-category-columns.injectable.ts index 080fde7e29..5903c0cd84 100644 --- a/src/renderer/components/+catalog/get-category-columns.injectable.ts +++ b/src/renderer/components/+catalog/get-category-columns.injectable.ts @@ -85,6 +85,8 @@ const getCategoryColumns = ({ extensionColumns }: Dependencies) => ({ activeCate }; const getCategoryColumnsInjectable = getInjectable({ + id: "get-category-columns", + instantiate: (di) => getCategoryColumns({ extensionColumns: di.inject(categoryColumnsInjectable), }), diff --git a/src/renderer/components/+cluster/cluster-overview-store/cluster-overview-store.injectable.ts b/src/renderer/components/+cluster/cluster-overview-store/cluster-overview-store.injectable.ts index 914a6e8c7f..27d2611a69 100644 --- a/src/renderer/components/+cluster/cluster-overview-store/cluster-overview-store.injectable.ts +++ b/src/renderer/components/+cluster/cluster-overview-store/cluster-overview-store.injectable.ts @@ -13,6 +13,8 @@ import createStorageInjectable from "../../../utils/create-storage/create-storag import apiManagerInjectable from "../../kube-object-menu/dependencies/api-manager.injectable"; const clusterOverviewStoreInjectable = getInjectable({ + id: "cluster-overview-store", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/+config/route-tabs.injectable.ts b/src/renderer/components/+config/route-tabs.injectable.ts index d715d4ac4b..87f644fae3 100644 --- a/src/renderer/components/+config/route-tabs.injectable.ts +++ b/src/renderer/components/+config/route-tabs.injectable.ts @@ -81,9 +81,12 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const configRoutesInjectable = getInjectable({ + id: "config-routes", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+custom-resources/custom-resources.injectable.ts b/src/renderer/components/+custom-resources/custom-resources.injectable.ts index 390025c256..4277167b88 100644 --- a/src/renderer/components/+custom-resources/custom-resources.injectable.ts +++ b/src/renderer/components/+custom-resources/custom-resources.injectable.ts @@ -8,6 +8,8 @@ import { computed } from "mobx"; import { crdStore } from "./crd.store"; const customResourceDefinitionsInjectable = getInjectable({ + id: "custom-resource-definitions", + instantiate: () => computed(() => [...crdStore.items]), lifecycle: lifecycleEnum.singleton, diff --git a/src/renderer/components/+custom-resources/grouped-custom-resources.injectable.ts b/src/renderer/components/+custom-resources/grouped-custom-resources.injectable.ts index 190bd544f0..14ddb5cc99 100644 --- a/src/renderer/components/+custom-resources/grouped-custom-resources.injectable.ts +++ b/src/renderer/components/+custom-resources/grouped-custom-resources.injectable.ts @@ -25,9 +25,12 @@ function getGroupedCustomResourceDefinitions({ definitions }: Dependencies) { } const groupedCustomResourceDefinitionsInjectable = getInjectable({ + id: "grouped-custom-resource-definitions", + instantiate: (di) => getGroupedCustomResourceDefinitions({ definitions: di.inject(customResourceDefinitionsInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+custom-resources/route-tabs.injectable.ts b/src/renderer/components/+custom-resources/route-tabs.injectable.ts index 32940b33d6..bbcca72ce4 100644 --- a/src/renderer/components/+custom-resources/route-tabs.injectable.ts +++ b/src/renderer/components/+custom-resources/route-tabs.injectable.ts @@ -51,9 +51,12 @@ function getRouteTabs({ customResourcesDefinitions }: Dependencies) { } const customResourcesRouteTabsInjectable = getInjectable({ + id: "custom-resources-route-tabs", + instantiate: (di) => getRouteTabs({ customResourcesDefinitions: di.inject(groupedCustomResourceDefinitionsInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable.ts b/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable.ts index a554419ba5..0b3b8eb64d 100644 --- a/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable.ts +++ b/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable.ts @@ -10,6 +10,8 @@ import extensionInstallationStateStoreInjectable from "../../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; const attemptInstallByInfoInjectable = getInjectable({ + id: "attempt-install-by-info", + instantiate: (di) => attemptInstallByInfo({ attemptInstall: di.inject(attemptInstallInjectable), diff --git a/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.ts b/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.ts index a6ddf1c690..639e60114c 100644 --- a/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.ts +++ b/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.ts @@ -14,6 +14,8 @@ import extensionInstallationStateStoreInjectable from "../../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; const attemptInstallInjectable = getInjectable({ + id: "attempt-install", + instantiate: (di) => attemptInstall({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.injectable.tsx b/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.injectable.tsx index 7b584411b6..6f3e036b43 100644 --- a/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.injectable.tsx +++ b/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.injectable.tsx @@ -7,6 +7,8 @@ import { createTempFilesAndValidate } from "./create-temp-files-and-validate"; import extensionDiscoveryInjectable from "../../../../../extensions/extension-discovery/extension-discovery.injectable"; const createTempFilesAndValidateInjectable = getInjectable({ + id: "create-temp-files-and-validate", + instantiate: (di) => createTempFilesAndValidate({ extensionDiscovery: di.inject(extensionDiscoveryInjectable), diff --git a/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.injectable.ts b/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.injectable.ts index cfe4a6de09..4d75312afe 100644 --- a/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.injectable.ts +++ b/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.injectable.ts @@ -9,6 +9,8 @@ import extensionDiscoveryInjectable from "../../../../../extensions/extension-di import { getExtensionDestFolder } from "./get-extension-dest-folder"; const getExtensionDestFolderInjectable = getInjectable({ + id: "get-extension-dest-folder", + instantiate: (di) => getExtensionDestFolder({ extensionDiscovery: di.inject(extensionDiscoveryInjectable), diff --git a/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.injectable.tsx b/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.injectable.tsx index 45806b224e..5095143df0 100644 --- a/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.injectable.tsx +++ b/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.injectable.tsx @@ -11,6 +11,8 @@ import extensionInstallationStateStoreInjectable from "../../../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; const unpackExtensionInjectable = getInjectable({ + id: "unpack-extension", + instantiate: (di) => unpackExtension({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.ts b/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.ts index 5676f272e5..f2ed5b6db8 100644 --- a/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.ts +++ b/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.ts @@ -7,6 +7,8 @@ import { attemptInstalls } from "./attempt-installs"; import attemptInstallInjectable from "../attempt-install/attempt-install.injectable"; const attemptInstallsInjectable = getInjectable({ + id: "attempt-installs", + instantiate: (di) => attemptInstalls({ attemptInstall: di.inject(attemptInstallInjectable), diff --git a/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable.ts b/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable.ts index fa7df68f46..6366977276 100644 --- a/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable.ts +++ b/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable.ts @@ -7,6 +7,8 @@ import { confirmUninstallExtension } from "./confirm-uninstall-extension"; import uninstallExtensionInjectable from "../uninstall-extension/uninstall-extension.injectable"; const confirmUninstallExtensionInjectable = getInjectable({ + id: "confirm-uninstall-extension", + instantiate: (di) => confirmUninstallExtension({ uninstallExtension: di.inject(uninstallExtensionInjectable), diff --git a/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.ts b/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.ts index 41280de9ef..0ce03e35b9 100644 --- a/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.ts +++ b/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.ts @@ -7,6 +7,8 @@ import extensionLoaderInjectable from "../../../../extensions/extension-loader/e import { disableExtension } from "./disable-extension"; const disableExtensionInjectable = getInjectable({ + id: "disable-extension", + instantiate: (di) => disableExtension({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.ts b/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.ts index 209b9c3377..6321d252b9 100644 --- a/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.ts +++ b/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.ts @@ -7,6 +7,8 @@ import extensionLoaderInjectable from "../../../../extensions/extension-loader/e import { enableExtension } from "./enable-extension"; const enableExtensionInjectable = getInjectable({ + id: "enable-extension", + instantiate: (di) => enableExtension({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/renderer/components/+extensions/get-base-registry-url/get-base-registry-url.injectable.ts b/src/renderer/components/+extensions/get-base-registry-url/get-base-registry-url.injectable.ts index 1475935cbf..38138ceb92 100644 --- a/src/renderer/components/+extensions/get-base-registry-url/get-base-registry-url.injectable.ts +++ b/src/renderer/components/+extensions/get-base-registry-url/get-base-registry-url.injectable.ts @@ -11,6 +11,8 @@ import { UserStore } from "../../../../common/user-store"; import { getBaseRegistryUrl } from "./get-base-registry-url"; const getBaseRegistryUrlInjectable = getInjectable({ + id: "get-base-registry-url", + instantiate: () => getBaseRegistryUrl({ // TODO: use injection getRegistryUrlPreference: () => UserStore.getInstance().extensionRegistryUrl, diff --git a/src/renderer/components/+extensions/install-from-input/install-from-input.injectable.ts b/src/renderer/components/+extensions/install-from-input/install-from-input.injectable.ts index 17f837920f..4813ef4f97 100644 --- a/src/renderer/components/+extensions/install-from-input/install-from-input.injectable.ts +++ b/src/renderer/components/+extensions/install-from-input/install-from-input.injectable.ts @@ -10,6 +10,8 @@ import extensionInstallationStateStoreInjectable from "../../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; const installFromInputInjectable = getInjectable({ + id: "install-from-input", + instantiate: (di) => installFromInput({ attemptInstall: di.inject(attemptInstallInjectable), diff --git a/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts b/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts index eb1597f61f..a13500622d 100644 --- a/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts +++ b/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts @@ -28,6 +28,8 @@ const installFromSelectFileDialog = ({ attemptInstalls, directoryForDownloads }: }; const installFromSelectFileDialogInjectable = getInjectable({ + id: "install-from-select-file-dialog", + instantiate: (di) => installFromSelectFileDialog({ attemptInstalls: di.inject(attemptInstallsInjectable), directoryForDownloads: di.inject(directoryForDownloadsInjectable), diff --git a/src/renderer/components/+extensions/install-on-drop/install-on-drop.injectable.ts b/src/renderer/components/+extensions/install-on-drop/install-on-drop.injectable.ts index cecc8b62cb..02f974ca6e 100644 --- a/src/renderer/components/+extensions/install-on-drop/install-on-drop.injectable.ts +++ b/src/renderer/components/+extensions/install-on-drop/install-on-drop.injectable.ts @@ -7,6 +7,8 @@ import { installOnDrop } from "./install-on-drop"; import attemptInstallsInjectable from "../attempt-installs/attempt-installs.injectable"; const installOnDropInjectable = getInjectable({ + id: "install-on-drop", + instantiate: (di) => installOnDrop({ attemptInstalls: di.inject(attemptInstallsInjectable), diff --git a/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.ts b/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.ts index 7bd2887842..cc7c415b79 100644 --- a/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.ts +++ b/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.ts @@ -11,6 +11,8 @@ import extensionDiscoveryInjectable from "../../../../extensions/extension-discovery/extension-discovery.injectable"; const uninstallExtensionInjectable = getInjectable({ + id: "uninstall-extension", + instantiate: (di) => uninstallExtension({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.ts b/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.ts index 2f96397f3f..6e0de8973b 100644 --- a/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.ts +++ b/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.ts @@ -7,6 +7,7 @@ import { computed } from "mobx"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; const userExtensionsInjectable = getInjectable({ + id: "user-extensions", lifecycle: lifecycleEnum.singleton, instantiate: (di) => { diff --git a/src/renderer/components/+helm-releases/create-release/create-release.injectable.ts b/src/renderer/components/+helm-releases/create-release/create-release.injectable.ts index 17c31ff6c2..e11f95d443 100644 --- a/src/renderer/components/+helm-releases/create-release/create-release.injectable.ts +++ b/src/renderer/components/+helm-releases/create-release/create-release.injectable.ts @@ -10,6 +10,8 @@ import { import releasesInjectable from "../releases.injectable"; const createReleaseInjectable = getInjectable({ + id: "create-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); diff --git a/src/renderer/components/+helm-releases/delete-release/delete-release.injectable.ts b/src/renderer/components/+helm-releases/delete-release/delete-release.injectable.ts index df2e4fa1e9..e55274ba81 100644 --- a/src/renderer/components/+helm-releases/delete-release/delete-release.injectable.ts +++ b/src/renderer/components/+helm-releases/delete-release/delete-release.injectable.ts @@ -10,6 +10,8 @@ import { import releasesInjectable from "../releases.injectable"; const deleteReleaseInjectable = getInjectable({ + id: "delete-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); diff --git a/src/renderer/components/+helm-releases/release-details/release-details.injectable.ts b/src/renderer/components/+helm-releases/release-details/release-details.injectable.ts index c726e0429c..6ec05bb802 100644 --- a/src/renderer/components/+helm-releases/release-details/release-details.injectable.ts +++ b/src/renderer/components/+helm-releases/release-details/release-details.injectable.ts @@ -8,6 +8,8 @@ import { asyncComputed } from "@ogre-tools/injectable-react"; import releaseInjectable from "./release.injectable"; const releaseDetailsInjectable = getInjectable({ + id: "release-details", + instantiate: (di) => asyncComputed(async () => { const release = di.inject(releaseInjectable).get(); diff --git a/src/renderer/components/+helm-releases/release-details/release-route-parameters.injectable.ts b/src/renderer/components/+helm-releases/release-details/release-route-parameters.injectable.ts index d179c539be..171e3d247a 100644 --- a/src/renderer/components/+helm-releases/release-details/release-route-parameters.injectable.ts +++ b/src/renderer/components/+helm-releases/release-details/release-route-parameters.injectable.ts @@ -9,6 +9,8 @@ import observableHistoryInjectable from "../../../navigation/observable-history. import { releaseRoute, ReleaseRouteParams } from "../../../../common/routes"; const releaseRouteParametersInjectable = getInjectable({ + id: "release-route-parameters", + instantiate: (di) => { const observableHistory = di.inject(observableHistoryInjectable); diff --git a/src/renderer/components/+helm-releases/release-details/release-values.injectable.ts b/src/renderer/components/+helm-releases/release-details/release-values.injectable.ts index 965db1324f..6e5ecc67f0 100644 --- a/src/renderer/components/+helm-releases/release-details/release-values.injectable.ts +++ b/src/renderer/components/+helm-releases/release-details/release-values.injectable.ts @@ -10,6 +10,8 @@ import { Notifications } from "../../notifications"; import userSuppliedValuesAreShownInjectable from "./user-supplied-values-are-shown.injectable"; const releaseValuesInjectable = getInjectable({ + id: "release-values", + instantiate: (di) => asyncComputed(async () => { const release = di.inject(releaseInjectable).get(); diff --git a/src/renderer/components/+helm-releases/release-details/release.injectable.ts b/src/renderer/components/+helm-releases/release-details/release.injectable.ts index 75b821890a..1913a63b12 100644 --- a/src/renderer/components/+helm-releases/release-details/release.injectable.ts +++ b/src/renderer/components/+helm-releases/release-details/release.injectable.ts @@ -9,6 +9,8 @@ import releaseRouteParametersInjectable from "./release-route-parameters.injecta import { computed } from "mobx"; const releaseInjectable = getInjectable({ + id: "release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); const releaseRouteParameters = di.inject(releaseRouteParametersInjectable); diff --git a/src/renderer/components/+helm-releases/release-details/user-supplied-values-are-shown.injectable.ts b/src/renderer/components/+helm-releases/release-details/user-supplied-values-are-shown.injectable.ts index 374f982882..573f93ff86 100644 --- a/src/renderer/components/+helm-releases/release-details/user-supplied-values-are-shown.injectable.ts +++ b/src/renderer/components/+helm-releases/release-details/user-supplied-values-are-shown.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { observable } from "mobx"; const userSuppliedValuesAreShownInjectable = getInjectable({ + id: "user-supplied-values-are-shown", + instantiate: () => { const state = observable.box(false); diff --git a/src/renderer/components/+helm-releases/release-rollback-dialog-model/release-rollback-dialog-model.injectable.ts b/src/renderer/components/+helm-releases/release-rollback-dialog-model/release-rollback-dialog-model.injectable.ts index cdfaf4656c..a5e58413d1 100644 --- a/src/renderer/components/+helm-releases/release-rollback-dialog-model/release-rollback-dialog-model.injectable.ts +++ b/src/renderer/components/+helm-releases/release-rollback-dialog-model/release-rollback-dialog-model.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { ReleaseRollbackDialogModel } from "./release-rollback-dialog-model"; const releaseRollbackDialogModelInjectable = getInjectable({ + id: "release-rollback-dialog-model", instantiate: () => new ReleaseRollbackDialogModel(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+helm-releases/releases.injectable.ts b/src/renderer/components/+helm-releases/releases.injectable.ts index 9858fb1834..94799f62b9 100644 --- a/src/renderer/components/+helm-releases/releases.injectable.ts +++ b/src/renderer/components/+helm-releases/releases.injectable.ts @@ -8,6 +8,8 @@ import namespaceStoreInjectable from "../+namespaces/namespace-store/namespace-s import { listReleases } from "../../../common/k8s-api/endpoints/helm-releases.api"; const releasesInjectable = getInjectable({ + id: "releases", + instantiate: (di) => { const namespaceStore = di.inject(namespaceStoreInjectable); diff --git a/src/renderer/components/+helm-releases/removable-releases.injectable.ts b/src/renderer/components/+helm-releases/removable-releases.injectable.ts index 6d41c63768..da8ed7b090 100644 --- a/src/renderer/components/+helm-releases/removable-releases.injectable.ts +++ b/src/renderer/components/+helm-releases/removable-releases.injectable.ts @@ -9,6 +9,8 @@ import deleteReleaseInjectable from "./delete-release/delete-release.injectable" import { removableReleases } from "./removable-releases"; const removableReleasesInjectable = getInjectable({ + id: "removable-releases", + instantiate: (di) => removableReleases({ releases: di.inject(releasesInjectable), diff --git a/src/renderer/components/+helm-releases/rollback-release/rollback-release.injectable.ts b/src/renderer/components/+helm-releases/rollback-release/rollback-release.injectable.ts index fe04ce71e6..55b1c4cada 100644 --- a/src/renderer/components/+helm-releases/rollback-release/rollback-release.injectable.ts +++ b/src/renderer/components/+helm-releases/rollback-release/rollback-release.injectable.ts @@ -7,6 +7,8 @@ import { rollbackRelease } from "../../../../common/k8s-api/endpoints/helm-relea import releasesInjectable from "../releases.injectable"; const rollbackReleaseInjectable = getInjectable({ + id: "rollback-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); @@ -16,6 +18,7 @@ const rollbackReleaseInjectable = getInjectable({ releases.invalidate(); }; }, + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+helm-releases/update-release/update-release.injectable.ts b/src/renderer/components/+helm-releases/update-release/update-release.injectable.ts index 06b1949da2..3d40a80733 100644 --- a/src/renderer/components/+helm-releases/update-release/update-release.injectable.ts +++ b/src/renderer/components/+helm-releases/update-release/update-release.injectable.ts @@ -10,6 +10,8 @@ import { import releasesInjectable from "../releases.injectable"; const updateReleaseInjectable = getInjectable({ + id: "update-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); diff --git a/src/renderer/components/+helm/route-tabs.injectable.ts b/src/renderer/components/+helm/route-tabs.injectable.ts index 34422f7c4b..b4df138f20 100644 --- a/src/renderer/components/+helm/route-tabs.injectable.ts +++ b/src/renderer/components/+helm/route-tabs.injectable.ts @@ -27,6 +27,7 @@ function getRouteTabs() { } const helmRoutesInjectable = getInjectable({ + id: "helm-routes", instantiate: () => getRouteTabs(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+namespaces/add-namespace-dialog-model/add-namespace-dialog-model.injectable.ts b/src/renderer/components/+namespaces/add-namespace-dialog-model/add-namespace-dialog-model.injectable.ts index 42cc213b95..5b90ab2b69 100644 --- a/src/renderer/components/+namespaces/add-namespace-dialog-model/add-namespace-dialog-model.injectable.ts +++ b/src/renderer/components/+namespaces/add-namespace-dialog-model/add-namespace-dialog-model.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { AddNamespaceDialogModel } from "./add-namespace-dialog-model"; const addNamespaceDialogModelInjectable = getInjectable({ + id: "add-namespace-dialog-model", instantiate: () => new AddNamespaceDialogModel(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+namespaces/namespace-select-filter-model/namespace-select-filter-model.injectable.ts b/src/renderer/components/+namespaces/namespace-select-filter-model/namespace-select-filter-model.injectable.ts index c1ca1a15af..4a9b4c66d6 100644 --- a/src/renderer/components/+namespaces/namespace-select-filter-model/namespace-select-filter-model.injectable.ts +++ b/src/renderer/components/+namespaces/namespace-select-filter-model/namespace-select-filter-model.injectable.ts @@ -6,7 +6,9 @@ import { NamespaceSelectFilterModel } from "./namespace-select-filter-model"; import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import namespaceStoreInjectable from "../namespace-store/namespace-store.injectable"; -const NamespaceSelectFilterModelInjectable = getInjectable({ +const namespaceSelectFilterModelInjectable = getInjectable({ + id: "namespace-select-filter-model", + instantiate: (di) => new NamespaceSelectFilterModel({ namespaceStore: di.inject(namespaceStoreInjectable), }), @@ -14,4 +16,4 @@ const NamespaceSelectFilterModelInjectable = getInjectable({ lifecycle: lifecycleEnum.singleton, }); -export default NamespaceSelectFilterModelInjectable; +export default namespaceSelectFilterModelInjectable; diff --git a/src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts b/src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts index d72a2263b5..0b145d5bc5 100644 --- a/src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts +++ b/src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts @@ -8,6 +8,8 @@ import apiManagerInjectable from "../../kube-object-menu/dependencies/api-manage import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const namespaceStoreInjectable = getInjectable({ + id: "namespace-store", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/+network/route-tabs.injectable.ts b/src/renderer/components/+network/route-tabs.injectable.ts index 95476fe17f..9561c74b60 100644 --- a/src/renderer/components/+network/route-tabs.injectable.ts +++ b/src/renderer/components/+network/route-tabs.injectable.ts @@ -70,9 +70,12 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const networkRouteTabsInjectable = getInjectable({ + id: "network-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+preferences/app-preferences/app-preferences.injectable.ts b/src/renderer/components/+preferences/app-preferences/app-preferences.injectable.ts index fc9deb8656..911589ed02 100644 --- a/src/renderer/components/+preferences/app-preferences/app-preferences.injectable.ts +++ b/src/renderer/components/+preferences/app-preferences/app-preferences.injectable.ts @@ -8,6 +8,8 @@ import rendererExtensionsInjectable from "../../../../extensions/renderer-extens import { getAppPreferences } from "./get-app-preferences"; const appPreferencesInjectable = getInjectable({ + id: "app-preferences", + instantiate: (di) => getAppPreferences({ extensions: di.inject(rendererExtensionsInjectable), diff --git a/src/renderer/components/+storage/route-tabs.injectable.ts b/src/renderer/components/+storage/route-tabs.injectable.ts index 512e0ddc09..6aee72c59a 100644 --- a/src/renderer/components/+storage/route-tabs.injectable.ts +++ b/src/renderer/components/+storage/route-tabs.injectable.ts @@ -52,9 +52,12 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const storageRouteTabsInjectable = getInjectable({ + id: "storage-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+user-management/route-tabs.injectable.ts b/src/renderer/components/+user-management/route-tabs.injectable.ts index a33249d5c6..d0b0d28a7e 100644 --- a/src/renderer/components/+user-management/route-tabs.injectable.ts +++ b/src/renderer/components/+user-management/route-tabs.injectable.ts @@ -82,9 +82,12 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const userManagementRouteTabsInjectable = getInjectable({ + id: "user-management-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/+welcome/__test__/welcome.test.tsx b/src/renderer/components/+welcome/__test__/welcome.test.tsx index 5b62bb6140..ed41dcdd31 100644 --- a/src/renderer/components/+welcome/__test__/welcome.test.tsx +++ b/src/renderer/components/+welcome/__test__/welcome.test.tsx @@ -11,7 +11,7 @@ import { computed } from "mobx"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; import type { DiRender } from "../../test-utils/renderFor"; import { renderFor } from "../../test-utils/renderFor"; -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import rendererExtensionsInjectable from "../../../../extensions/renderer-extensions.injectable"; import { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; import type { WelcomeBannerRegistration } from "../welcome-banner-items/welcome-banner-registration"; @@ -27,7 +27,7 @@ jest.mock("electron", () => ({ describe("", () => { let render: DiRender; - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; let welcomeBannersStub: WelcomeBannerRegistration[]; beforeEach(async () => { diff --git a/src/renderer/components/+welcome/welcome-banner-items/welcome-banner-items.injectable.ts b/src/renderer/components/+welcome/welcome-banner-items/welcome-banner-items.injectable.ts index eb83fbf127..e2337cb02a 100644 --- a/src/renderer/components/+welcome/welcome-banner-items/welcome-banner-items.injectable.ts +++ b/src/renderer/components/+welcome/welcome-banner-items/welcome-banner-items.injectable.ts @@ -7,6 +7,8 @@ import rendererExtensionsInjectable from "../../../../extensions/renderer-extens import { computed } from "mobx"; const welcomeBannerItemsInjectable = getInjectable({ + id: "welcome-banner-items", + instantiate: (di) => { const extensions = di.inject(rendererExtensionsInjectable); diff --git a/src/renderer/components/+welcome/welcome-menu-items/welcome-menu-items.injectable.ts b/src/renderer/components/+welcome/welcome-menu-items/welcome-menu-items.injectable.ts index feae0d8f59..2543357bf4 100644 --- a/src/renderer/components/+welcome/welcome-menu-items/welcome-menu-items.injectable.ts +++ b/src/renderer/components/+welcome/welcome-menu-items/welcome-menu-items.injectable.ts @@ -7,6 +7,8 @@ import rendererExtensionsInjectable from "../../../../extensions/renderer-extens import { getWelcomeMenuItems } from "./get-welcome-menu-items"; const welcomeMenuItemsInjectable = getInjectable({ + id: "welcome-menu-items", + instantiate: (di) => getWelcomeMenuItems({ extensions: di.inject(rendererExtensionsInjectable), diff --git a/src/renderer/components/+workloads-overview/workloads.injectable.ts b/src/renderer/components/+workloads-overview/workloads.injectable.ts index 013a195816..c9aef6d9bf 100644 --- a/src/renderer/components/+workloads-overview/workloads.injectable.ts +++ b/src/renderer/components/+workloads-overview/workloads.injectable.ts @@ -18,6 +18,8 @@ import namespaceStoreInjectable from "../+namespaces/namespace-store/namespace-s import { workloads } from "./workloads"; const workloadsInjectable = getInjectable({ + id: "workloads", + instantiate: (di) => workloads({ isAllowedResource: di.inject(isAllowedResourceInjectable), diff --git a/src/renderer/components/+workloads/route-tabs.injectable.ts b/src/renderer/components/+workloads/route-tabs.injectable.ts index e31c171d38..b3f66f1864 100644 --- a/src/renderer/components/+workloads/route-tabs.injectable.ts +++ b/src/renderer/components/+workloads/route-tabs.injectable.ts @@ -100,9 +100,12 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const workloadsRouteTabsInjectable = getInjectable({ + id: "workloads-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/command-palette/command-overlay.injectable.ts b/src/renderer/components/command-palette/command-overlay.injectable.ts index c121fcae6b..d1284287fa 100644 --- a/src/renderer/components/command-palette/command-overlay.injectable.ts +++ b/src/renderer/components/command-palette/command-overlay.injectable.ts @@ -32,6 +32,7 @@ export class CommandOverlay { } const commandOverlayInjectable = getInjectable({ + id: "command-overlay", instantiate: () => new CommandOverlay(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/command-palette/registered-commands/internal-commands.injectable.tsx b/src/renderer/components/command-palette/registered-commands/internal-commands.injectable.tsx index 76e8ed7743..42a5a164df 100644 --- a/src/renderer/components/command-palette/registered-commands/internal-commands.injectable.tsx +++ b/src/renderer/components/command-palette/registered-commands/internal-commands.injectable.tsx @@ -205,6 +205,8 @@ function getInternalCommands({ openCommandDialog, getEntitySettingItems, createT } const internalCommandsInjectable = getInjectable({ + id: "internal-commands", + instantiate: (di) => getInternalCommands({ openCommandDialog: di.inject(commandOverlayInjectable).open, getEntitySettingItems: EntitySettingRegistry @@ -212,6 +214,7 @@ const internalCommandsInjectable = getInjectable({ .getItemsForKind, createTerminalTab: di.inject(createTerminalTabInjectable), }), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/command-palette/registered-commands/registered-commands.injectable.ts b/src/renderer/components/command-palette/registered-commands/registered-commands.injectable.ts index 419339dd4d..7ed3ad5eb7 100644 --- a/src/renderer/components/command-palette/registered-commands/registered-commands.injectable.ts +++ b/src/renderer/components/command-palette/registered-commands/registered-commands.injectable.ts @@ -41,6 +41,8 @@ const instantiateRegisteredCommands = ({ extensions, customResourceDefinitions, }); const registeredCommandsInjectable = getInjectable({ + id: "registered-commands", + instantiate: (di) => instantiateRegisteredCommands({ extensions: di.inject(rendererExtensionsInjectable), customResourceDefinitions: di.inject(customResourceDefinitionsInjectable), diff --git a/src/renderer/components/dock/create-resource/clear-create-resource-tab-data.injectable.ts b/src/renderer/components/dock/create-resource/clear-create-resource-tab-data.injectable.ts index d69d4b1c7f..f088651c23 100644 --- a/src/renderer/components/dock/create-resource/clear-create-resource-tab-data.injectable.ts +++ b/src/renderer/components/dock/create-resource/clear-create-resource-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import createResourceTabStoreInjectable from "./store.injectable"; const clearCreateResourceTabDataInjectable = getInjectable({ + id: "clear-create-resource-tab-data", + instantiate: (di) => { const createResourceTabStore = di.inject(createResourceTabStoreInjectable); diff --git a/src/renderer/components/dock/create-resource/create-resource-tab.injectable.ts b/src/renderer/components/dock/create-resource/create-resource-tab.injectable.ts index e6e115115b..05bea85956 100644 --- a/src/renderer/components/dock/create-resource/create-resource-tab.injectable.ts +++ b/src/renderer/components/dock/create-resource/create-resource-tab.injectable.ts @@ -7,6 +7,8 @@ import dockStoreInjectable from "../dock/store.injectable"; import { DockTabCreateSpecific, TabKind } from "../dock/store"; const createResourceTabInjectable = getInjectable({ + id: "create-resource-tab", + instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); diff --git a/src/renderer/components/dock/create-resource/create-resource-templates.injectable.ts b/src/renderer/components/dock/create-resource/create-resource-templates.injectable.ts index 5f98e0b994..2b5d3981d7 100644 --- a/src/renderer/components/dock/create-resource/create-resource-templates.injectable.ts +++ b/src/renderer/components/dock/create-resource/create-resource-templates.injectable.ts @@ -11,6 +11,8 @@ import lensCreateResourceTemplatesInjectable from "./lens-templates.injectable"; export type RawTemplates = [group: string, items: [file: string, contents: string][]]; const createResourceTemplatesInjectable = getInjectable({ + id: "create-resource-templates", + instantiate: async (di) => { const lensResourceTemplates = await di.inject(lensCreateResourceTemplatesInjectable); const userResourceTemplates = di.inject(userCreateResourceTemplatesInjectable); diff --git a/src/renderer/components/dock/create-resource/lens-templates.injectable.ts b/src/renderer/components/dock/create-resource/lens-templates.injectable.ts index 915cc8a7d7..5fa3a0e968 100644 --- a/src/renderer/components/dock/create-resource/lens-templates.injectable.ts +++ b/src/renderer/components/dock/create-resource/lens-templates.injectable.ts @@ -33,6 +33,8 @@ async function getTemplates({ readDir, readFile }: Dependencies) { } const lensCreateResourceTemplatesInjectable = getInjectable({ + id: "lens-create-resource-templates", + instantiate: async (di): Promise => { const templates = await getTemplates({ readFile: di.inject(readFileInjectable), diff --git a/src/renderer/components/dock/create-resource/store.injectable.ts b/src/renderer/components/dock/create-resource/store.injectable.ts index 0b005f96f9..9b3c5f339a 100644 --- a/src/renderer/components/dock/create-resource/store.injectable.ts +++ b/src/renderer/components/dock/create-resource/store.injectable.ts @@ -7,6 +7,8 @@ import { CreateResourceTabStore } from "./store"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const createResourceTabStoreInjectable = getInjectable({ + id: "create-resource-tab-store", + instantiate: (di) => new CreateResourceTabStore({ createStorage: di.inject(createStorageInjectable), }), diff --git a/src/renderer/components/dock/create-resource/user-templates.injectable.ts b/src/renderer/components/dock/create-resource/user-templates.injectable.ts index 4060191e52..4676862e19 100644 --- a/src/renderer/components/dock/create-resource/user-templates.injectable.ts +++ b/src/renderer/components/dock/create-resource/user-templates.injectable.ts @@ -95,6 +95,7 @@ function watchUserCreateResourceTemplates(): IComputedValue { } const userCreateResourceTemplatesInjectable = getInjectable({ + id: "user-create-resource-templates", instantiate: () => watchUserCreateResourceTemplates(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/dock/dock-tab-store/create-dock-tab-store.injectable.ts b/src/renderer/components/dock/dock-tab-store/create-dock-tab-store.injectable.ts index ed76d8d9a6..d3054efcda 100644 --- a/src/renderer/components/dock/dock-tab-store/create-dock-tab-store.injectable.ts +++ b/src/renderer/components/dock/dock-tab-store/create-dock-tab-store.injectable.ts @@ -7,6 +7,8 @@ import { DockTabStore, DockTabStoreOptions } from "./dock-tab.store"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const createDockTabStoreInjectable = getInjectable({ + id: "create-dock-tab-store", + instantiate: (di) => { const dependencies = { createStorage: di.inject(createStorageInjectable), diff --git a/src/renderer/components/dock/dock/close-dock-tab.injectable.ts b/src/renderer/components/dock/dock/close-dock-tab.injectable.ts index 8d44637cd7..b62e019bbd 100644 --- a/src/renderer/components/dock/dock/close-dock-tab.injectable.ts +++ b/src/renderer/components/dock/dock/close-dock-tab.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "./store"; import dockStoreInjectable from "./store.injectable"; const closeDockTabInjectable = getInjectable({ + id: "close-dock-tab", + instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); @@ -14,7 +16,7 @@ const closeDockTabInjectable = getInjectable({ dockStore.closeTab(tabId); }; }, - + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/dock/dock/create-dock-tab.injectable.ts b/src/renderer/components/dock/dock/create-dock-tab.injectable.ts index 1469b2e31b..46bb0fbeb5 100644 --- a/src/renderer/components/dock/dock/create-dock-tab.injectable.ts +++ b/src/renderer/components/dock/dock/create-dock-tab.injectable.ts @@ -7,6 +7,8 @@ import dockStoreInjectable from "./store.injectable"; import type { DockTab, DockTabCreate } from "./store"; const createDockTabInjectable = getInjectable({ + id: "create-dock-tab", + instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); diff --git a/src/renderer/components/dock/dock/dock-storage.injectable.ts b/src/renderer/components/dock/dock/dock-storage.injectable.ts index e58127761f..790eccaf9e 100644 --- a/src/renderer/components/dock/dock/dock-storage.injectable.ts +++ b/src/renderer/components/dock/dock/dock-storage.injectable.ts @@ -7,6 +7,8 @@ import createStorageInjectable from "../../../utils/create-storage/create-storag import { DockStorageState, TabKind } from "./store"; const dockStorageInjectable = getInjectable({ + id: "dock-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/dock/dock/rename-tab.injectable.ts b/src/renderer/components/dock/dock/rename-tab.injectable.ts index 38ceb4dcbe..20e8ee8030 100644 --- a/src/renderer/components/dock/dock/rename-tab.injectable.ts +++ b/src/renderer/components/dock/dock/rename-tab.injectable.ts @@ -7,6 +7,7 @@ import dockStoreInjectable from "./store.injectable"; import type { TabId } from "./store"; const renameTabInjectable = getInjectable({ + id: "rename-tab", instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); diff --git a/src/renderer/components/dock/dock/select-dock-tab.injectable.ts b/src/renderer/components/dock/dock/select-dock-tab.injectable.ts index 39830db90c..2a2a6b014e 100644 --- a/src/renderer/components/dock/dock/select-dock-tab.injectable.ts +++ b/src/renderer/components/dock/dock/select-dock-tab.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "./store"; import dockStoreInjectable from "./store.injectable"; const selectDockTabInjectable = getInjectable({ + id: "select-dock-tab", + instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); diff --git a/src/renderer/components/dock/dock/store.injectable.ts b/src/renderer/components/dock/dock/store.injectable.ts index b61450ea54..4e46c1f04f 100644 --- a/src/renderer/components/dock/dock/store.injectable.ts +++ b/src/renderer/components/dock/dock/store.injectable.ts @@ -14,6 +14,8 @@ import clearInstallChartTabDataInjectable from "../install-chart/clear-install-c import isLogsTabDataValidInjectable from "../logs/is-logs-tab-data-valid.injectable"; const dockStoreInjectable = getInjectable({ + id: "dock-store", + instantiate: (di) => new DockStore({ storage: di.inject(dockStorageInjectable), tabDataClearers: { diff --git a/src/renderer/components/dock/edit-resource/clear-edit-resource-tab-data.injectable.ts b/src/renderer/components/dock/edit-resource/clear-edit-resource-tab-data.injectable.ts index 3b73991af8..92c006de1c 100644 --- a/src/renderer/components/dock/edit-resource/clear-edit-resource-tab-data.injectable.ts +++ b/src/renderer/components/dock/edit-resource/clear-edit-resource-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import editResourceTabStoreInjectable from "./store.injectable"; const clearEditResourceTabDataInjectable = getInjectable({ + id: "clear-edit-resource-tab", + instantiate: (di) => { const editResourceTabStore = di.inject(editResourceTabStoreInjectable); diff --git a/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts b/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts index a68639e12b..af7e64e0f6 100644 --- a/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts +++ b/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts @@ -45,6 +45,8 @@ const createEditResourceTab = ({ dockStore, editResourceStore }: Dependencies) = }; const createEditResourceTabInjectable = getInjectable({ + id: "create-edit-resource-tab", + instantiate: (di) => createEditResourceTab({ dockStore: di.inject(dockStoreInjectable), editResourceStore: di.inject(editResourceTabStoreInjectable), diff --git a/src/renderer/components/dock/edit-resource/store.injectable.ts b/src/renderer/components/dock/edit-resource/store.injectable.ts index ae2f462262..a741f7e810 100644 --- a/src/renderer/components/dock/edit-resource/store.injectable.ts +++ b/src/renderer/components/dock/edit-resource/store.injectable.ts @@ -7,6 +7,8 @@ import { EditResourceTabStore } from "./store"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const editResourceTabStoreInjectable = getInjectable({ + id: "edit-resource-tab-store", + instantiate: (di) => new EditResourceTabStore({ createStorage: di.inject(createStorageInjectable), }), diff --git a/src/renderer/components/dock/install-chart/clear-install-chart-tab-data.injectable.ts b/src/renderer/components/dock/install-chart/clear-install-chart-tab-data.injectable.ts index 0221d5dc38..389d85a57a 100644 --- a/src/renderer/components/dock/install-chart/clear-install-chart-tab-data.injectable.ts +++ b/src/renderer/components/dock/install-chart/clear-install-chart-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import installChartTabStoreInjectable from "./store.injectable"; const clearInstallChartTabDataInjectable = getInjectable({ + id: "clear-install-chart-tab-data", + instantiate: (di) => { const installChartTabStore = di.inject(installChartTabStoreInjectable); diff --git a/src/renderer/components/dock/install-chart/create-install-chart-tab.injectable.ts b/src/renderer/components/dock/install-chart/create-install-chart-tab.injectable.ts index 2e9920c310..0db83f3fba 100644 --- a/src/renderer/components/dock/install-chart/create-install-chart-tab.injectable.ts +++ b/src/renderer/components/dock/install-chart/create-install-chart-tab.injectable.ts @@ -44,6 +44,8 @@ const createInstallChartTab = ({ createDockTab, installChartStore }: Dependencie }; const createInstallChartTabInjectable = getInjectable({ + id: "create-install-chart-tab", + instantiate: (di) => createInstallChartTab({ installChartStore: di.inject(installChartTabStoreInjectable), createDockTab: di.inject(createDockTabInjectable), diff --git a/src/renderer/components/dock/install-chart/store.injectable.ts b/src/renderer/components/dock/install-chart/store.injectable.ts index f1d38d744a..18eb1039dc 100644 --- a/src/renderer/components/dock/install-chart/store.injectable.ts +++ b/src/renderer/components/dock/install-chart/store.injectable.ts @@ -9,6 +9,8 @@ import type { IReleaseUpdateDetails } from "../../../../common/k8s-api/endpoints import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const installChartTabStoreInjectable = getInjectable({ + id: "install-chart-tab-store", + instantiate: (di) => { const createDockTabStore = di.inject(createDockTabStoreInjectable); diff --git a/src/renderer/components/dock/logs/are-logs-present.injectable.ts b/src/renderer/components/dock/logs/are-logs-present.injectable.ts index f4644c8229..372b9aa276 100644 --- a/src/renderer/components/dock/logs/are-logs-present.injectable.ts +++ b/src/renderer/components/dock/logs/are-logs-present.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import logStoreInjectable from "./store.injectable"; const areLogsPresentInjectable = getInjectable({ + id: "are-logs-present", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/call-for-logs.injectable.ts b/src/renderer/components/dock/logs/call-for-logs.injectable.ts index 4b918f351f..0670197b4b 100644 --- a/src/renderer/components/dock/logs/call-for-logs.injectable.ts +++ b/src/renderer/components/dock/logs/call-for-logs.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { podsApi } from "../../../../common/k8s-api/endpoints"; const callForLogsInjectable = getInjectable({ + id: "call-for-logs", instantiate: () => podsApi.getLogs, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/dock/logs/clear-log-tab-data.injectable.ts b/src/renderer/components/dock/logs/clear-log-tab-data.injectable.ts index 0bc007bdf4..a169448fe3 100644 --- a/src/renderer/components/dock/logs/clear-log-tab-data.injectable.ts +++ b/src/renderer/components/dock/logs/clear-log-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import logTabStoreInjectable from "./tab-store.injectable"; const clearLogTabDataInjectable = getInjectable({ + id: "clear-log-tab-data", + instantiate: (di) => { const logTabStore = di.inject(logTabStoreInjectable); diff --git a/src/renderer/components/dock/logs/create-logs-tab.injectable.ts b/src/renderer/components/dock/logs/create-logs-tab.injectable.ts index ddef5c16d7..e10b3725bb 100644 --- a/src/renderer/components/dock/logs/create-logs-tab.injectable.ts +++ b/src/renderer/components/dock/logs/create-logs-tab.injectable.ts @@ -37,6 +37,8 @@ const createLogsTab = ({ createDockTab, setLogTabData }: Dependencies) => (title }; const createLogsTabInjectable = getInjectable({ + id: "create-logs-tab", + instantiate: (di) => createLogsTab({ createDockTab: di.inject(createDockTabInjectable), setLogTabData: di.inject(setLogTabDataInjectable), diff --git a/src/renderer/components/dock/logs/create-pod-logs-tab.injectable.ts b/src/renderer/components/dock/logs/create-pod-logs-tab.injectable.ts index 2d9c3f981d..69cc6fe9b8 100644 --- a/src/renderer/components/dock/logs/create-pod-logs-tab.injectable.ts +++ b/src/renderer/components/dock/logs/create-pod-logs-tab.injectable.ts @@ -13,6 +13,8 @@ export interface PodLogsTabData { } const createPodLogsTabInjectable = getInjectable({ + id: "create-pod-logs-tab", + instantiate: (di) => { const createLogsTab = di.inject(createLogsTabInjectable); diff --git a/src/renderer/components/dock/logs/create-workload-logs-tab.injectable.ts b/src/renderer/components/dock/logs/create-workload-logs-tab.injectable.ts index e8e2eb41ed..71239584a4 100644 --- a/src/renderer/components/dock/logs/create-workload-logs-tab.injectable.ts +++ b/src/renderer/components/dock/logs/create-workload-logs-tab.injectable.ts @@ -38,6 +38,8 @@ const createWorkloadLogsTab = ({ createLogsTab }: Dependencies) => ({ workload } }; const createWorkloadLogsTabInjectable = getInjectable({ + id: "create-workload-logs-tab", + instantiate: (di) => createWorkloadLogsTab({ createLogsTab: di.inject(createLogsTabInjectable), }), diff --git a/src/renderer/components/dock/logs/get-log-tab-data.injectable.ts b/src/renderer/components/dock/logs/get-log-tab-data.injectable.ts index 35fecebb3a..3d80471a59 100644 --- a/src/renderer/components/dock/logs/get-log-tab-data.injectable.ts +++ b/src/renderer/components/dock/logs/get-log-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { LogTabData } from "./tab-store"; import logTabStoreInjectable from "./tab-store.injectable"; const getLogTabDataInjectable = getInjectable({ + id: "get-log-tab-data", + instantiate: (di) => { const logTabStore = di.inject(logTabStoreInjectable); diff --git a/src/renderer/components/dock/logs/get-logs-without-timestamps.injectable.ts b/src/renderer/components/dock/logs/get-logs-without-timestamps.injectable.ts index 250039d7e1..bc6724c46d 100644 --- a/src/renderer/components/dock/logs/get-logs-without-timestamps.injectable.ts +++ b/src/renderer/components/dock/logs/get-logs-without-timestamps.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const getLogsWithoutTimestampsInjectable = getInjectable({ + id: "get-logs-without-timestamps", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/get-logs.injectable.ts b/src/renderer/components/dock/logs/get-logs.injectable.ts index acd6d10137..11dd996494 100644 --- a/src/renderer/components/dock/logs/get-logs.injectable.ts +++ b/src/renderer/components/dock/logs/get-logs.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const getLogsInjectable = getInjectable({ + id: "get-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/get-timestamp-split-logs.injectable.ts b/src/renderer/components/dock/logs/get-timestamp-split-logs.injectable.ts index 4d2189d27e..d9b349fc9e 100644 --- a/src/renderer/components/dock/logs/get-timestamp-split-logs.injectable.ts +++ b/src/renderer/components/dock/logs/get-timestamp-split-logs.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const getTimestampSplitLogsInjectable = getInjectable({ + id: "get-timestamp-split-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/is-logs-tab-data-valid.injectable.ts b/src/renderer/components/dock/logs/is-logs-tab-data-valid.injectable.ts index 03062ecaae..728f5902c5 100644 --- a/src/renderer/components/dock/logs/is-logs-tab-data-valid.injectable.ts +++ b/src/renderer/components/dock/logs/is-logs-tab-data-valid.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import logTabStoreInjectable from "./tab-store.injectable"; const isLogsTabDataValidInjectable = getInjectable({ + id: "is-logs-tab-data-valid", + instantiate: (di) => { const logTabStore = di.inject(logTabStoreInjectable); diff --git a/src/renderer/components/dock/logs/load-logs.injectable.ts b/src/renderer/components/dock/logs/load-logs.injectable.ts index 69be8a2e85..ea5e05afa2 100644 --- a/src/renderer/components/dock/logs/load-logs.injectable.ts +++ b/src/renderer/components/dock/logs/load-logs.injectable.ts @@ -9,6 +9,8 @@ import logStoreInjectable from "./store.injectable"; import type { LogTabData } from "./tab-store"; const loadLogsInjectable = getInjectable({ + id: "load-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/logs-view-model.injectable.ts b/src/renderer/components/dock/logs/logs-view-model.injectable.ts index d26a34d583..5943888a5b 100644 --- a/src/renderer/components/dock/logs/logs-view-model.injectable.ts +++ b/src/renderer/components/dock/logs/logs-view-model.injectable.ts @@ -23,6 +23,8 @@ export interface InstantiateArgs { } const logsViewModelInjectable = getInjectable({ + id: "logs-view-model", + instantiate: (di, { tabId }: InstantiateArgs) => new LogTabViewModel(tabId, { getLogs: di.inject(getLogsInjectable), getLogsWithoutTimestamps: di.inject(getLogsWithoutTimestampsInjectable), diff --git a/src/renderer/components/dock/logs/reload-logs.injectable.ts b/src/renderer/components/dock/logs/reload-logs.injectable.ts index 4ba55c4b58..96b7dab301 100644 --- a/src/renderer/components/dock/logs/reload-logs.injectable.ts +++ b/src/renderer/components/dock/logs/reload-logs.injectable.ts @@ -9,6 +9,8 @@ import logStoreInjectable from "./store.injectable"; import type { LogTabData } from "./tab-store"; const reloadLogsInjectable = getInjectable({ + id: "reload-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/set-log-tab-data.injectable.ts b/src/renderer/components/dock/logs/set-log-tab-data.injectable.ts index db84635bf1..f0380c0b36 100644 --- a/src/renderer/components/dock/logs/set-log-tab-data.injectable.ts +++ b/src/renderer/components/dock/logs/set-log-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { LogTabData } from "./tab-store"; import logTabStoreInjectable from "./tab-store.injectable"; const setLogTabDataInjectable = getInjectable({ + id: "set-log-tab-data", + instantiate: (di) => { const logTabStore = di.inject(logTabStoreInjectable); diff --git a/src/renderer/components/dock/logs/stop-loading-logs.injectable.ts b/src/renderer/components/dock/logs/stop-loading-logs.injectable.ts index db0df464cf..781e728c05 100644 --- a/src/renderer/components/dock/logs/stop-loading-logs.injectable.ts +++ b/src/renderer/components/dock/logs/stop-loading-logs.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const stopLoadingLogsInjectable = getInjectable({ + id: "stop-loading-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); diff --git a/src/renderer/components/dock/logs/store.injectable.ts b/src/renderer/components/dock/logs/store.injectable.ts index a1f4b79de9..15d6964947 100644 --- a/src/renderer/components/dock/logs/store.injectable.ts +++ b/src/renderer/components/dock/logs/store.injectable.ts @@ -7,6 +7,8 @@ import { LogStore } from "./store"; import callForLogsInjectable from "./call-for-logs.injectable"; const logStoreInjectable = getInjectable({ + id: "log-store", + instantiate: (di) => new LogStore({ callForLogs: di.inject(callForLogsInjectable), }), diff --git a/src/renderer/components/dock/logs/tab-store.injectable.ts b/src/renderer/components/dock/logs/tab-store.injectable.ts index 61d4667f55..ca52d7907a 100644 --- a/src/renderer/components/dock/logs/tab-store.injectable.ts +++ b/src/renderer/components/dock/logs/tab-store.injectable.ts @@ -7,6 +7,8 @@ import { LogTabStore } from "./tab-store"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const logTabStoreInjectable = getInjectable({ + id: "log-tab-store", + instantiate: (di) => new LogTabStore({ createStorage: di.inject(createStorageInjectable), }), diff --git a/src/renderer/components/dock/terminal/clear-terminal-tab-data.injectable.ts b/src/renderer/components/dock/terminal/clear-terminal-tab-data.injectable.ts index 4396e3ee20..e62dfad0b5 100644 --- a/src/renderer/components/dock/terminal/clear-terminal-tab-data.injectable.ts +++ b/src/renderer/components/dock/terminal/clear-terminal-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import terminalStoreInjectable from "./store.injectable"; const clearTerminalTabDataInjectable = getInjectable({ + id: "clear-terminal-tab-data", + instantiate: (di) => { const terminalStore = di.inject(terminalStoreInjectable); diff --git a/src/renderer/components/dock/terminal/create-terminal-tab.injectable.ts b/src/renderer/components/dock/terminal/create-terminal-tab.injectable.ts index 9348bd49ef..d064fcea8a 100644 --- a/src/renderer/components/dock/terminal/create-terminal-tab.injectable.ts +++ b/src/renderer/components/dock/terminal/create-terminal-tab.injectable.ts @@ -7,6 +7,8 @@ import dockStoreInjectable from "../dock/store.injectable"; import { DockTabCreateSpecific, TabKind } from "../dock/store"; const createTerminalTabInjectable = getInjectable({ + id: "create-terminal-tab", + instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); diff --git a/src/renderer/components/dock/terminal/create-terminal.injectable.ts b/src/renderer/components/dock/terminal/create-terminal.injectable.ts index 2dc6f04941..0ba920cf0f 100644 --- a/src/renderer/components/dock/terminal/create-terminal.injectable.ts +++ b/src/renderer/components/dock/terminal/create-terminal.injectable.ts @@ -8,6 +8,7 @@ import type { TabId } from "../dock/store"; import type { TerminalApi } from "../../../api/terminal-api"; const createTerminalInjectable = getInjectable({ + id: "create-terminal", instantiate: () => (tabId: TabId, api: TerminalApi) => new Terminal(tabId, api), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts b/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts index 7724380c50..3cf9dbb2fb 100644 --- a/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts +++ b/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts @@ -8,6 +8,8 @@ import type { TabId } from "../dock/store"; import terminalStoreInjectable from "./store.injectable"; const getTerminalApiInjectable = getInjectable({ + id: "get-terminal-api", + instantiate: (di) => { const terminalStore = di.inject(terminalStoreInjectable); diff --git a/src/renderer/components/dock/terminal/send-command.injectable.ts b/src/renderer/components/dock/terminal/send-command.injectable.ts index 6e6b970b21..f0b9ed6f82 100644 --- a/src/renderer/components/dock/terminal/send-command.injectable.ts +++ b/src/renderer/components/dock/terminal/send-command.injectable.ts @@ -79,6 +79,8 @@ const sendCommand = ({ selectTab, createTerminalTab, getTerminalApi }: Dependenc }; const sendCommandInjectable = getInjectable({ + id: "send-command", + instantiate: (di) => sendCommand({ createTerminalTab: di.inject(createTerminalTabInjectable), selectTab: di.inject(selectDockTabInjectable), diff --git a/src/renderer/components/dock/terminal/store.injectable.ts b/src/renderer/components/dock/terminal/store.injectable.ts index 06c4c4d7f4..60acb9d700 100644 --- a/src/renderer/components/dock/terminal/store.injectable.ts +++ b/src/renderer/components/dock/terminal/store.injectable.ts @@ -7,6 +7,8 @@ import { TerminalStore } from "./store"; import createTerminalInjectable from "./create-terminal.injectable"; const terminalStoreInjectable = getInjectable({ + id: "terminal-store", + instantiate: (di) => new TerminalStore({ createTerminal: di.inject(createTerminalInjectable), }), diff --git a/src/renderer/components/dock/upgrade-chart/clear-upgrade-chart-tab-data.injectable.ts b/src/renderer/components/dock/upgrade-chart/clear-upgrade-chart-tab-data.injectable.ts index e6515a4749..120f36c2c9 100644 --- a/src/renderer/components/dock/upgrade-chart/clear-upgrade-chart-tab-data.injectable.ts +++ b/src/renderer/components/dock/upgrade-chart/clear-upgrade-chart-tab-data.injectable.ts @@ -7,6 +7,8 @@ import type { TabId } from "../dock/store"; import upgradeChartTabStoreInjectable from "./store.injectable"; const clearUpgradeChartTabDataInjectable = getInjectable({ + id: "clear-upgrade-chart-tab-data", + instantiate: (di) => { const upgradeChartTabStore = di.inject(upgradeChartTabStoreInjectable); diff --git a/src/renderer/components/dock/upgrade-chart/create-upgrade-chart-tab.injectable.ts b/src/renderer/components/dock/upgrade-chart/create-upgrade-chart-tab.injectable.ts index 0d3de6158a..d9d340c62c 100644 --- a/src/renderer/components/dock/upgrade-chart/create-upgrade-chart-tab.injectable.ts +++ b/src/renderer/components/dock/upgrade-chart/create-upgrade-chart-tab.injectable.ts @@ -45,6 +45,8 @@ const createUpgradeChartTab = ({ upgradeChartStore, dockStore }: Dependencies) = }; const createUpgradeChartTabInjectable = getInjectable({ + id: "create-upgrade-chart-tab", + instantiate: (di) => createUpgradeChartTab({ upgradeChartStore: di.inject(upgradeChartTabStoreInjectable), dockStore: di.inject(dockStoreInjectable), diff --git a/src/renderer/components/dock/upgrade-chart/store.injectable.ts b/src/renderer/components/dock/upgrade-chart/store.injectable.ts index 13e69e9b10..11bb5f9541 100644 --- a/src/renderer/components/dock/upgrade-chart/store.injectable.ts +++ b/src/renderer/components/dock/upgrade-chart/store.injectable.ts @@ -8,6 +8,8 @@ import createDockTabStoreInjectable from "../dock-tab-store/create-dock-tab-stor import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const upgradeChartTabStoreInjectable = getInjectable({ + id: "upgrade-chart-tab-store", + instantiate: (di) => { const createDockTabStore = di.inject(createDockTabStoreInjectable); diff --git a/src/renderer/components/drawer/drawer-storage/drawer-storage.injectable.ts b/src/renderer/components/drawer/drawer-storage/drawer-storage.injectable.ts index cc99b11f6b..43e9b75670 100644 --- a/src/renderer/components/drawer/drawer-storage/drawer-storage.injectable.ts +++ b/src/renderer/components/drawer/drawer-storage/drawer-storage.injectable.ts @@ -8,6 +8,8 @@ import createStorageInjectable from "../../../utils/create-storage/create-storag export const defaultDrawerWidth = 725; const drawerStorageInjectable = getInjectable({ + id: "drawer-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/hotbar/__tests__/hotbar-remove-command.test.tsx b/src/renderer/components/hotbar/__tests__/hotbar-remove-command.test.tsx index 95963844c8..ddfc2a949e 100644 --- a/src/renderer/components/hotbar/__tests__/hotbar-remove-command.test.tsx +++ b/src/renderer/components/hotbar/__tests__/hotbar-remove-command.test.tsx @@ -7,7 +7,7 @@ import "@testing-library/jest-dom/extend-expect"; import { HotbarRemoveCommand } from "../hotbar-remove-command"; import { fireEvent } from "@testing-library/react"; import React from "react"; -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; import { DiRender, renderFor } from "../../test-utils/renderFor"; import hotbarManagerInjectable from "../../../../common/hotbar-store.injectable"; @@ -27,7 +27,7 @@ const mockHotbars: { [id: string]: any } = { }; describe("", () => { - let di: DependencyInjectionContainer; + let di: DiContainer; let render: DiRender; beforeEach(() => { diff --git a/src/renderer/components/input/validators/unique-hotbar-name.injectable.ts b/src/renderer/components/input/validators/unique-hotbar-name.injectable.ts index 9676d189d5..b291f89c06 100644 --- a/src/renderer/components/input/validators/unique-hotbar-name.injectable.ts +++ b/src/renderer/components/input/validators/unique-hotbar-name.injectable.ts @@ -8,11 +8,14 @@ import hotbarManagerInjectable from "../../../../common/hotbar-store.injectable" import type { InputValidator } from "../input_validators"; const uniqueHotbarNameInjectable = getInjectable({ + id: "unique-hotbar-name", + instantiate: di => ({ condition: ({ required }) => required, message: () => "Hotbar with this name already exists", validate: value => !di.inject(hotbarManagerInjectable).getByName(value), } as InputValidator), + lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/item-object-list/storage.injectable.ts b/src/renderer/components/item-object-list/storage.injectable.ts index a105d35472..84c3ab3377 100644 --- a/src/renderer/components/item-object-list/storage.injectable.ts +++ b/src/renderer/components/item-object-list/storage.injectable.ts @@ -6,6 +6,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import createStorageInjectable from "../../utils/create-storage/create-storage.injectable"; const itemListLayoutStorageInjectable = getInjectable({ + id: "item-list-layout-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.ts b/src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.ts index 4580b13824..4228787004 100644 --- a/src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.ts +++ b/src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.ts @@ -6,6 +6,7 @@ import { apiManager } from "../../../../common/k8s-api/api-manager"; import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; const apiManagerInjectable = getInjectable({ + id: "api-manager", instantiate: () => apiManager, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/kube-object-menu/dependencies/cluster-name.injectable.ts b/src/renderer/components/kube-object-menu/dependencies/cluster-name.injectable.ts index 12fec4e977..ad7c5c0e80 100644 --- a/src/renderer/components/kube-object-menu/dependencies/cluster-name.injectable.ts +++ b/src/renderer/components/kube-object-menu/dependencies/cluster-name.injectable.ts @@ -7,6 +7,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import clusterInjectable from "./cluster.injectable"; const clusterNameInjectable = getInjectable({ + id: "cluster-name", + instantiate: (di) => { const cluster = di.inject(clusterInjectable); diff --git a/src/renderer/components/kube-object-menu/dependencies/cluster.injectable.ts b/src/renderer/components/kube-object-menu/dependencies/cluster.injectable.ts index 07a82434ff..a1b88f6587 100644 --- a/src/renderer/components/kube-object-menu/dependencies/cluster.injectable.ts +++ b/src/renderer/components/kube-object-menu/dependencies/cluster.injectable.ts @@ -7,6 +7,7 @@ import { getActiveClusterEntity } from "../../../api/catalog-entity-registry"; import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; const clusterInjectable = getInjectable({ + id: "cluster", instantiate: () => getActiveClusterEntity(), lifecycle: lifecycleEnum.transient, }); diff --git a/src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.ts b/src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.ts index 397719b3d6..f2662830cd 100644 --- a/src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.ts +++ b/src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.ts @@ -6,6 +6,7 @@ import { hideDetails } from "../../kube-detail-params"; import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; const hideDetailsInjectable = getInjectable({ + id: "hide-details", instantiate: () => hideDetails, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.ts b/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.ts index 703374ab2d..1f9f8586e3 100644 --- a/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.ts +++ b/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.ts @@ -9,6 +9,7 @@ import type { KubeObject } from "../../../../../common/k8s-api/kube-object"; import rendererExtensionsInjectable from "../../../../../extensions/renderer-extensions.injectable"; const kubeObjectMenuItemsInjectable = getInjectable({ + id: "kube-object-menu-items", instantiate: (di, { kubeObject }: { kubeObject: KubeObject }) => getKubeObjectMenuItems({ extensions: di.inject(rendererExtensionsInjectable).get(), diff --git a/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx b/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx index ac6b55f36f..c6959e66ed 100644 --- a/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx +++ b/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx @@ -7,7 +7,7 @@ import { screen } from "@testing-library/react"; import "@testing-library/jest-dom/extend-expect"; import { KubeObject } from "../../../common/k8s-api/kube-object"; import userEvent from "@testing-library/user-event"; -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { ConfirmDialog } from "../confirm-dialog"; import asyncFn, { AsyncFnMock } from "@async-fn/jest"; import { getDiForUnitTesting } from "../../getDiForUnitTesting"; @@ -47,7 +47,7 @@ class SomeTestExtension extends LensRendererExtension { } describe("kube-object-menu", () => { - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; let render: DiRender; beforeEach(async () => { diff --git a/src/renderer/components/layout/sidebar-storage/sidebar-storage.injectable.ts b/src/renderer/components/layout/sidebar-storage/sidebar-storage.injectable.ts index 54cfe564c3..6195881814 100644 --- a/src/renderer/components/layout/sidebar-storage/sidebar-storage.injectable.ts +++ b/src/renderer/components/layout/sidebar-storage/sidebar-storage.injectable.ts @@ -15,6 +15,8 @@ export interface SidebarStorageState { export const defaultSidebarWidth = 200; const sidebarStorageInjectable = getInjectable({ + id: "sidebar-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/layout/top-bar/top-bar-items/top-bar-items.injectable.ts b/src/renderer/components/layout/top-bar/top-bar-items/top-bar-items.injectable.ts index 1791d7c516..47e41a5fcd 100644 --- a/src/renderer/components/layout/top-bar/top-bar-items/top-bar-items.injectable.ts +++ b/src/renderer/components/layout/top-bar/top-bar-items/top-bar-items.injectable.ts @@ -7,6 +7,8 @@ import { computed } from "mobx"; import rendererExtensionsInjectable from "../../../../../extensions/renderer-extensions.injectable"; const topBarItemsInjectable = getInjectable({ + id: "top-bar-items", + instantiate: (di) => { const extensions = di.inject(rendererExtensionsInjectable); diff --git a/src/renderer/components/layout/top-bar/top-bar.test.tsx b/src/renderer/components/layout/top-bar/top-bar.test.tsx index db61d3e8d0..06a1a16855 100644 --- a/src/renderer/components/layout/top-bar/top-bar.test.tsx +++ b/src/renderer/components/layout/top-bar/top-bar.test.tsx @@ -8,7 +8,7 @@ import { fireEvent } from "@testing-library/react"; import "@testing-library/jest-dom/extend-expect"; import { TopBar } from "./top-bar"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { DiRender, renderFor } from "../../test-utils/renderFor"; import topBarItemsInjectable from "./top-bar-items/top-bar-items.injectable"; import { computed } from "mobx"; @@ -72,7 +72,7 @@ jest.mock("../../+catalog", () => ({ })); describe("", () => { - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; let render: DiRender; beforeEach(async () => { diff --git a/src/renderer/components/table/table-model/table-model.injectable.ts b/src/renderer/components/table/table-model/table-model.injectable.ts index af91a3ad1b..4b6cf2c1f7 100644 --- a/src/renderer/components/table/table-model/table-model.injectable.ts +++ b/src/renderer/components/table/table-model/table-model.injectable.ts @@ -7,6 +7,8 @@ import createStorageInjectable from "../../../utils/create-storage/create-storag import { TableModel, TableStorageModel } from "./table-model"; const tableModelInjectable = getInjectable({ + id: "table-model", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/components/test-utils/renderFor.tsx b/src/renderer/components/test-utils/renderFor.tsx index d7b1b2c73b..9e56700b69 100644 --- a/src/renderer/components/test-utils/renderFor.tsx +++ b/src/renderer/components/test-utils/renderFor.tsx @@ -9,13 +9,13 @@ import { RenderResult, } from "@testing-library/react"; -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import { DiContextProvider } from "@ogre-tools/injectable-react"; export type DiRender = (ui: React.ReactElement) => RenderResult; -type DiRenderFor = (di: DependencyInjectionContainer) => DiRender; +type DiRenderFor = (di: DiContainer) => DiRender; export const renderFor: DiRenderFor = (di) => (ui) => { const result = testingLibraryRender( diff --git a/src/renderer/create-cluster/create-cluster.injectable.ts b/src/renderer/create-cluster/create-cluster.injectable.ts index e39450d604..bd2330e7ff 100644 --- a/src/renderer/create-cluster/create-cluster.injectable.ts +++ b/src/renderer/create-cluster/create-cluster.injectable.ts @@ -8,6 +8,8 @@ import directoryForKubeConfigsInjectable from "../../common/app-paths/directory- import { createClusterInjectionToken } from "../../common/cluster/create-cluster-injection-token"; const createClusterInjectable = getInjectable({ + id: "create-cluster", + instantiate: (di) => { const dependencies: ClusterDependencies = { directoryForKubeConfigs: di.inject(directoryForKubeConfigsInjectable), diff --git a/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/frame-routing-id.injectable.ts b/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/frame-routing-id.injectable.ts index 19828c2c4f..960d8b9dc4 100644 --- a/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/frame-routing-id.injectable.ts +++ b/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/frame-routing-id.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import webFrameInjectable from "./web-frame/web-frame.injectable"; const frameRoutingIdInjectable = getInjectable({ + id: "frame-routing-id", instantiate: (di) => di.inject(webFrameInjectable).routingId, lifecycle: lifecycleEnum.singleton, diff --git a/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/web-frame/web-frame.injectable.ts b/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/web-frame/web-frame.injectable.ts index a80844dbb1..c39108f614 100644 --- a/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/web-frame/web-frame.injectable.ts +++ b/src/renderer/frames/cluster-frame/init-cluster-frame/frame-routing-id/web-frame/web-frame.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { webFrame } from "electron"; const webFrameInjectable = getInjectable({ + id: "web-frame", instantiate: () => webFrame, lifecycle: lifecycleEnum.singleton, causesSideEffects: true, diff --git a/src/renderer/frames/cluster-frame/init-cluster-frame/init-cluster-frame.injectable.ts b/src/renderer/frames/cluster-frame/init-cluster-frame/init-cluster-frame.injectable.ts index d8767fea27..59bd0e896b 100644 --- a/src/renderer/frames/cluster-frame/init-cluster-frame/init-cluster-frame.injectable.ts +++ b/src/renderer/frames/cluster-frame/init-cluster-frame/init-cluster-frame.injectable.ts @@ -12,6 +12,8 @@ import appEventBusInjectable from "../../../../common/app-event-bus/app-event-bu import clusterFrameContextInjectable from "../../../cluster-frame-context/cluster-frame-context.injectable"; const initClusterFrameInjectable = getInjectable({ + id: "init-cluster-frame", + instantiate: (di) => initClusterFrame({ hostedCluster: di.inject(hostedClusterInjectable), diff --git a/src/renderer/frames/root-frame/init-root-frame/init-root-frame.injectable.ts b/src/renderer/frames/root-frame/init-root-frame/init-root-frame.injectable.ts index 6827bb3008..9b653aac59 100644 --- a/src/renderer/frames/root-frame/init-root-frame/init-root-frame.injectable.ts +++ b/src/renderer/frames/root-frame/init-root-frame/init-root-frame.injectable.ts @@ -11,6 +11,8 @@ import lensProtocolRouterRendererInjectable from "../../../protocol-handler/lens import catalogEntityRegistryInjectable from "../../../api/catalog-entity-registry/catalog-entity-registry.injectable"; const initRootFrameInjectable = getInjectable({ + id: "init-root-frame", + instantiate: (di) => { const extensionLoader = di.inject(extensionLoaderInjectable); diff --git a/src/renderer/getDiForUnitTesting.tsx b/src/renderer/getDiForUnitTesting.tsx index c353008371..bc9821d4df 100644 --- a/src/renderer/getDiForUnitTesting.tsx +++ b/src/renderer/getDiForUnitTesting.tsx @@ -22,7 +22,6 @@ export const getDiForUnitTesting = ({ doGeneralOverrides } = { doGeneralOverride const injectableInstance = require(filePath).default; di.register({ - id: filePath, ...injectableInstance, aliases: [injectableInstance, ...(injectableInstance.aliases || [])], }); diff --git a/src/renderer/kube-watch-api/kube-watch-api.injectable.ts b/src/renderer/kube-watch-api/kube-watch-api.injectable.ts index 448a5cbad5..d71b9b0e2c 100644 --- a/src/renderer/kube-watch-api/kube-watch-api.injectable.ts +++ b/src/renderer/kube-watch-api/kube-watch-api.injectable.ts @@ -7,6 +7,8 @@ import clusterFrameContextInjectable from "../cluster-frame-context/cluster-fram import { KubeWatchApi } from "./kube-watch-api"; const kubeWatchApiInjectable = getInjectable({ + id: "kube-watch-api", + instantiate: (di) => new KubeWatchApi({ clusterFrameContext: di.inject(clusterFrameContextInjectable), }), diff --git a/src/renderer/kube-watch-api/subscribe-stores.injectable.ts b/src/renderer/kube-watch-api/subscribe-stores.injectable.ts index 35eb3a722e..99a18a59c8 100644 --- a/src/renderer/kube-watch-api/subscribe-stores.injectable.ts +++ b/src/renderer/kube-watch-api/subscribe-stores.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import kubeWatchApiInjectable from "./kube-watch-api.injectable"; const subscribeStoresInjectable = getInjectable({ + id: "subscribe-stores", instantiate: (di) => di.inject(kubeWatchApiInjectable).subscribeStores, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/navigation/history.injectable.ts b/src/renderer/navigation/history.injectable.ts index 0f5acaa2d8..874493edb3 100644 --- a/src/renderer/navigation/history.injectable.ts +++ b/src/renderer/navigation/history.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { history } from "./history"; const historyInjectable = getInjectable({ + id: "history", instantiate: () => history, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/navigation/observable-history.injectable.ts b/src/renderer/navigation/observable-history.injectable.ts index db50db04f2..f59b5529dc 100644 --- a/src/renderer/navigation/observable-history.injectable.ts +++ b/src/renderer/navigation/observable-history.injectable.ts @@ -7,8 +7,8 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { navigation as observableHistory } from "./history"; const observableHistoryInjectable = getInjectable({ + id: "observable-history", instantiate: () => observableHistory, - lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable.ts b/src/renderer/port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable.ts index 92ddbbbfc0..e3e6b7893e 100644 --- a/src/renderer/port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable.ts +++ b/src/renderer/port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { PortForwardDialogModel } from "./port-forward-dialog-model"; const portForwardDialogModelInjectable = getInjectable({ + id: "port-forward-dialog-model", instantiate: () => new PortForwardDialogModel(), lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/port-forward/port-forward-store/port-forward-store.injectable.ts b/src/renderer/port-forward/port-forward-store/port-forward-store.injectable.ts index a8c15104a8..9067e88c56 100644 --- a/src/renderer/port-forward/port-forward-store/port-forward-store.injectable.ts +++ b/src/renderer/port-forward/port-forward-store/port-forward-store.injectable.ts @@ -8,6 +8,8 @@ import type { ForwardedPort } from "../port-forward-item"; import createStorageInjectable from "../../utils/create-storage/create-storage.injectable"; const portForwardStoreInjectable = getInjectable({ + id: "port-forward-store", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); diff --git a/src/renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.injectable.ts b/src/renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.injectable.ts index de19da48eb..9c0a1311b8 100644 --- a/src/renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.injectable.ts +++ b/src/renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.injectable.ts @@ -8,6 +8,8 @@ import { bindProtocolAddRouteHandlers } from "./bind-protocol-add-route-handlers import lensProtocolRouterRendererInjectable from "../lens-protocol-router-renderer/lens-protocol-router-renderer.injectable"; const bindProtocolAddRouteHandlersInjectable = getInjectable({ + id: "bind-protocol-add-route-handlers", + instantiate: (di) => bindProtocolAddRouteHandlers({ attemptInstallByInfo: di.inject(attemptInstallByInfoInjectable), diff --git a/src/renderer/protocol-handler/lens-protocol-router-renderer/lens-protocol-router-renderer.injectable.ts b/src/renderer/protocol-handler/lens-protocol-router-renderer/lens-protocol-router-renderer.injectable.ts index 5bf621ff0c..08893ab8df 100644 --- a/src/renderer/protocol-handler/lens-protocol-router-renderer/lens-protocol-router-renderer.injectable.ts +++ b/src/renderer/protocol-handler/lens-protocol-router-renderer/lens-protocol-router-renderer.injectable.ts @@ -9,6 +9,8 @@ import extensionsStoreInjectable from "../../../extensions/extensions-store/extensions-store.injectable"; const lensProtocolRouterRendererInjectable = getInjectable({ + id: "lens-protocol-router-renderer", + instantiate: (di) => new LensProtocolRouterRenderer({ extensionLoader: di.inject(extensionLoaderInjectable), diff --git a/src/renderer/search-store/search-store.injectable.ts b/src/renderer/search-store/search-store.injectable.ts index 3d5d08f484..8e73ffe2cb 100644 --- a/src/renderer/search-store/search-store.injectable.ts +++ b/src/renderer/search-store/search-store.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { SearchStore } from "./search-store"; const searchStoreInjectable = getInjectable({ + id: "search-store", instantiate: () => new SearchStore(), lifecycle: lifecycleEnum.transient, }); diff --git a/src/renderer/utils/create-storage/create-storage.injectable.ts b/src/renderer/utils/create-storage/create-storage.injectable.ts index 729123a3ad..c33da80e09 100644 --- a/src/renderer/utils/create-storage/create-storage.injectable.ts +++ b/src/renderer/utils/create-storage/create-storage.injectable.ts @@ -9,6 +9,8 @@ import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable import writeJsonFileInjectable from "../../../common/fs/write-json-file.injectable"; const createStorageInjectable = getInjectable({ + id: "create-storage", + instantiate: (di) => createStorage({ readJsonFile: di.inject(readJsonFileInjectable), diff --git a/src/renderer/utils/save-file.injectable.ts b/src/renderer/utils/save-file.injectable.ts index 593c6955dc..38e9fcc16e 100644 --- a/src/renderer/utils/save-file.injectable.ts +++ b/src/renderer/utils/save-file.injectable.ts @@ -6,6 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { saveFileDialog } from "./saveFile"; const openSaveFileDialogInjectable = getInjectable({ + id: "open-save-file-dialog", instantiate: () => saveFileDialog, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/renderer/window/event-listener.injectable.ts b/src/renderer/window/event-listener.injectable.ts index cebb27d87e..5df5fa60a1 100644 --- a/src/renderer/window/event-listener.injectable.ts +++ b/src/renderer/window/event-listener.injectable.ts @@ -13,6 +13,7 @@ function addWindowEventListener(type: K, listene } const windowAddEventListenerInjectable = getInjectable({ + id: "window-add-event-listener", instantiate: () => addWindowEventListener, lifecycle: lifecycleEnum.singleton, }); diff --git a/src/test-utils/override-ipc-bridge.ts b/src/test-utils/override-ipc-bridge.ts index b497d3091b..ff948fd8a5 100644 --- a/src/test-utils/override-ipc-bridge.ts +++ b/src/test-utils/override-ipc-bridge.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { DependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import type { Channel } from "../common/ipc-channel/channel"; import getValueFromRegisteredChannelInjectable from "../renderer/app-paths/get-value-from-registered-channel/get-value-from-registered-channel.injectable"; import registerChannelInjectable from "../main/app-paths/register-channel/register-channel.injectable"; @@ -12,8 +12,8 @@ export const overrideIpcBridge = ({ rendererDi, mainDi, }: { - rendererDi: DependencyInjectionContainer; - mainDi: DependencyInjectionContainer; + rendererDi: DiContainer; + mainDi: DiContainer; }) => { const fakeChannelMap = new Map< Channel,