diff --git a/package.json b/package.json index 92904da9b1..d77e0d9cf2 100644 --- a/package.json +++ b/package.json @@ -194,8 +194,8 @@ "@hapi/call": "^8.0.1", "@hapi/subtext": "^7.0.3", "@kubernetes/client-node": "^0.16.1", - "@ogre-tools/injectable": "3.2.1", - "@ogre-tools/injectable-react": "3.2.1", + "@ogre-tools/injectable": "5.0.1", + "@ogre-tools/injectable-react": "5.0.1", "@sentry/electron": "^2.5.4", "@sentry/integrations": "^6.15.0", "@types/circular-dependency-plugin": "5.0.4", 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..8ba0412ba4 100644 --- a/src/common/app-event-bus/app-event-bus.injectable.ts +++ b/src/common/app-event-bus/app-event-bus.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { appEventBus } from "./event-bus"; const appEventBusInjectable = getInjectable({ + id: "app-event-bus", instantiate: () => appEventBus, - lifecycle: lifecycleEnum.singleton, }); export default appEventBusInjectable; 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..7a7aa8658d 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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"), - - lifecycle: lifecycleEnum.singleton, }); export default directoryForBinariesInjectable; 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..944c8a656a 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default directoryForDownloadsInjectable; 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..1bd245daa4 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default directoryForExesInjectable; 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..c0869c4b11 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import directoryForUserDataInjectable from "../directory-for-user-data/directory-for-user-data.injectable"; import path from "path"; const directoryForKubeConfigsInjectable = getInjectable({ + id: "directory-for-kube-configs", + instantiate: (di) => path.resolve(di.inject(directoryForUserDataInjectable), "kubeconfigs"), - - lifecycle: lifecycleEnum.singleton, }); export default directoryForKubeConfigsInjectable; 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..b51e8e0489 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default directoryForTempInjectable; 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..bff067b7e5 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default directoryForUserDataInjectable; 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..1157ec96da 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 @@ -2,21 +2,21 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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, ); }, - - lifecycle: lifecycleEnum.singleton, }); export default getCustomKubeConfigDirectoryInjectable; diff --git a/src/common/cluster-store/allowed-resources.injectable.ts b/src/common/cluster-store/allowed-resources.injectable.ts index 3e4d4e67f5..2277befbd6 100644 --- a/src/common/cluster-store/allowed-resources.injectable.ts +++ b/src/common/cluster-store/allowed-resources.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { comparer, computed } from "mobx"; import hostedClusterInjectable from "./hosted-cluster.injectable"; const allowedResourcesInjectable = getInjectable({ + id: "allowed-resources", + instantiate: (di) => { const cluster = di.inject(hostedClusterInjectable); @@ -15,7 +17,6 @@ const allowedResourcesInjectable = getInjectable({ equals: (cur, prev) => comparer.structural(cur, prev), }); }, - lifecycle: lifecycleEnum.singleton, }); export default allowedResourcesInjectable; diff --git a/src/common/cluster-store/cluster-store.injectable.ts b/src/common/cluster-store/cluster-store.injectable.ts index e0b4563ea8..f6295e4bd7 100644 --- a/src/common/cluster-store/cluster-store.injectable.ts +++ b/src/common/cluster-store/cluster-store.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default clusterStoreInjectable; diff --git a/src/common/cluster-store/hosted-cluster.injectable.ts b/src/common/cluster-store/hosted-cluster.injectable.ts index 2d093a1600..1bcafc9238 100644 --- a/src/common/cluster-store/hosted-cluster.injectable.ts +++ b/src/common/cluster-store/hosted-cluster.injectable.ts @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { getHostedClusterId } from "../utils"; import clusterStoreInjectable from "./cluster-store.injectable"; const hostedClusterInjectable = getInjectable({ + id: "hosted-cluster", + instantiate: (di) => { const hostedClusterId = getHostedClusterId(); return di.inject(clusterStoreInjectable).getById(hostedClusterId); }, - - lifecycle: lifecycleEnum.singleton, }); export default hostedClusterInjectable; diff --git a/src/common/cluster/authorization-review.injectable.ts b/src/common/cluster/authorization-review.injectable.ts index 92fbf5c4de..6330a1971f 100644 --- a/src/common/cluster/authorization-review.injectable.ts +++ b/src/common/cluster/authorization-review.injectable.ts @@ -5,7 +5,7 @@ import { AuthorizationV1Api, KubeConfig, V1ResourceAttributes } from "@kubernetes/client-node"; import logger from "../logger"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; export type CanI = (resourceAttributes: V1ResourceAttributes) => Promise; @@ -38,8 +38,8 @@ export function authorizationReview(proxyConfig: KubeConfig): CanI { } const authorizationReviewInjectable = getInjectable({ + id: "authorization-review", instantiate: () => authorizationReview, - lifecycle: lifecycleEnum.singleton, }); export default authorizationReviewInjectable; 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..97ae171442 100644 --- a/src/common/cluster/list-namespaces.injectable.ts +++ b/src/common/cluster/list-namespaces.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { CoreV1Api, KubeConfig } from "@kubernetes/client-node"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; export type ListNamespaces = () => Promise; @@ -18,8 +18,8 @@ export function listNamespaces(config: KubeConfig): ListNamespaces { } const listNamespacesInjectable = getInjectable({ + id: "list-namespaces", instantiate: () => listNamespaces, - lifecycle: lifecycleEnum.singleton, }); export default listNamespacesInjectable; 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..fc1e3ef0f0 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), "lens-local-storage", ), - - lifecycle: lifecycleEnum.singleton, }); export default directoryForLensLocalStorageInjectable; diff --git a/src/common/fs/fs.injectable.ts b/src/common/fs/fs.injectable.ts index e7f32773f9..ab385e5871 100644 --- a/src/common/fs/fs.injectable.ts +++ b/src/common/fs/fs.injectable.ts @@ -2,13 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import fse from "fs-extra"; const fsInjectable = getInjectable({ + id: "fs", instantiate: () => fse, causesSideEffects: true, - lifecycle: lifecycleEnum.singleton, }); export default fsInjectable; diff --git a/src/common/fs/read-dir.injectable.ts b/src/common/fs/read-dir.injectable.ts index 501ecc1cdd..2c7b59d9b2 100644 --- a/src/common/fs/read-dir.injectable.ts +++ b/src/common/fs/read-dir.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import fsInjectable from "./fs.injectable"; const readDirInjectable = getInjectable({ + id: "read-dir", instantiate: (di) => di.inject(fsInjectable).readdir, - lifecycle: lifecycleEnum.singleton, }); export default readDirInjectable; diff --git a/src/common/fs/read-file.injectable.ts b/src/common/fs/read-file.injectable.ts index 5e2871a03d..5c0bad27ca 100644 --- a/src/common/fs/read-file.injectable.ts +++ b/src/common/fs/read-file.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import fsInjectable from "./fs.injectable"; const readFileInjectable = getInjectable({ + id: "read-file", instantiate: (di) => di.inject(fsInjectable).readFile, - lifecycle: lifecycleEnum.singleton, }); export default readFileInjectable; diff --git a/src/common/fs/read-json-file.injectable.ts b/src/common/fs/read-json-file.injectable.ts index b944decadc..308d3b8a91 100644 --- a/src/common/fs/read-json-file.injectable.ts +++ b/src/common/fs/read-json-file.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default readJsonFileInjectable; diff --git a/src/common/fs/write-json-file.injectable.ts b/src/common/fs/write-json-file.injectable.ts index 7bef449444..89aae40736 100644 --- a/src/common/fs/write-json-file.injectable.ts +++ b/src/common/fs/write-json-file.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { EnsureOptions, WriteOptions } from "fs-extra"; import path from "path"; import type { JsonValue } from "type-fest"; @@ -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); @@ -31,8 +33,6 @@ const writeJsonFileInjectable = getInjectable({ ensureDir, }); }, - - lifecycle: lifecycleEnum.singleton, }); export default writeJsonFileInjectable; diff --git a/src/common/hotbar-store.injectable.ts b/src/common/hotbar-store.injectable.ts index 3a20ccc4ce..47510d9555 100644 --- a/src/common/hotbar-store.injectable.ts +++ b/src/common/hotbar-store.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { HotbarStore } from "./hotbar-store"; const hotbarManagerInjectable = getInjectable({ + id: "hotbar-manager", instantiate: () => HotbarStore.getInstance(), - lifecycle: lifecycleEnum.singleton, }); export default hotbarManagerInjectable; diff --git a/src/common/user-store/user-store.injectable.ts b/src/common/user-store/user-store.injectable.ts index 09a411d405..36db7c0820 100644 --- a/src/common/user-store/user-store.injectable.ts +++ b/src/common/user-store/user-store.injectable.ts @@ -2,13 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { UserStore } from "./user-store"; const userStoreInjectable = getInjectable({ + id: "user-store", instantiate: () => UserStore.createInstance(), - - lifecycle: lifecycleEnum.singleton, }); export default userStoreInjectable; diff --git a/src/common/utils/is-allowed-resource.injectable.ts b/src/common/utils/is-allowed-resource.injectable.ts index 0b9d07d5bb..9977f6e5f8 100644 --- a/src/common/utils/is-allowed-resource.injectable.ts +++ b/src/common/utils/is-allowed-resource.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import allowedResourcesInjectable from "../cluster-store/allowed-resources.injectable"; import type { KubeResource } from "../rbac"; @@ -10,13 +10,13 @@ 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); return (resource: KubeResource) => allowedResources.get().has(resource); }, - - lifecycle: lifecycleEnum.singleton, }); export default isAllowedResourceInjectable; diff --git a/src/common/vars/is-linux.injectable.ts b/src/common/vars/is-linux.injectable.ts index a603f01951..b7a24e9a2b 100644 --- a/src/common/vars/is-linux.injectable.ts +++ b/src/common/vars/is-linux.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { isLinux } from "../vars"; const isLinuxInjectable = getInjectable({ + id: "is-linux", instantiate: () => isLinux, - lifecycle: lifecycleEnum.singleton, }); export default isLinuxInjectable; diff --git a/src/common/vars/is-windows.injectable.ts b/src/common/vars/is-windows.injectable.ts index 76a08a4af2..bdce3e827f 100644 --- a/src/common/vars/is-windows.injectable.ts +++ b/src/common/vars/is-windows.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { isWindows } from "../vars"; const isWindowsInjectable = getInjectable({ + id: "is-windows", instantiate: () => isWindows, - lifecycle: lifecycleEnum.singleton, }); export default isWindowsInjectable; 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..747dfa4f42 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 @@ -2,14 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, - - lifecycle: lifecycleEnum.singleton, }); export default getEnabledExtensionsInjectable; diff --git a/src/extensions/extension-discovery/extension-discovery.injectable.ts b/src/extensions/extension-discovery/extension-discovery.injectable.ts index 114e217270..6833dda3a8 100644 --- a/src/extensions/extension-discovery/extension-discovery.injectable.ts +++ b/src/extensions/extension-discovery/extension-discovery.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { ExtensionDiscovery } from "./extension-discovery"; import extensionLoaderInjectable from "../extension-loader/extension-loader.injectable"; import isCompatibleExtensionInjectable from "./is-compatible-extension/is-compatible-extension.injectable"; @@ -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), @@ -36,8 +38,6 @@ const extensionDiscoveryInjectable = getInjectable({ extensionPackageRootDirectoryInjectable, ), }), - - lifecycle: lifecycleEnum.singleton, }); export default extensionDiscoveryInjectable; 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..046b106da5 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 @@ -2,13 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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, }); export default isCompatibleBundledExtensionInjectable; 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..7ca49a41cd 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 @@ -2,13 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { appSemVer } from "../../../common/vars"; import { isCompatibleExtension } from "./is-compatible-extension"; const isCompatibleExtensionInjectable = getInjectable({ + id: "is-compatible-extension", instantiate: () => isCompatibleExtension({ appSemVer }), - lifecycle: lifecycleEnum.singleton, }); export default isCompatibleExtensionInjectable; 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..9d5891a01a 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default extensionInstallationStateStoreInjectable; diff --git a/src/extensions/extension-installer/extension-installer.injectable.ts b/src/extensions/extension-installer/extension-installer.injectable.ts index b2850e0311..169b758049 100644 --- a/src/extensions/extension-installer/extension-installer.injectable.ts +++ b/src/extensions/extension-installer/extension-installer.injectable.ts @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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( extensionPackageRootDirectoryInjectable, ), }), - - lifecycle: lifecycleEnum.singleton, }); export default extensionInstallerInjectable; 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..6ab004ef6d 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 @@ -2,14 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; const extensionPackageRootDirectoryInjectable = getInjectable({ - instantiate: (di) => di.inject(directoryForUserDataInjectable), + id: "extension-package-root-directory", - lifecycle: lifecycleEnum.singleton, + instantiate: (di) => di.inject(directoryForUserDataInjectable), }); export default extensionPackageRootDirectoryInjectable; 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..940c5987a5 100644 --- a/src/extensions/extension-installer/install-extension/install-extension.injectable.ts +++ b/src/extensions/extension-installer/install-extension/install-extension.injectable.ts @@ -2,13 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default installExtensionInjectable; 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..7387326e15 100644 --- a/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts +++ b/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts @@ -2,13 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default installExtensionsInjectable; 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..d5bba359bc 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 @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default createExtensionInstanceInjectable; 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..7856fd84de 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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"), - - lifecycle: lifecycleEnum.singleton, }); export default directoryForExtensionDataInjectable; 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..4851771285 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 @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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( directoryForExtensionDataInjectable, ), }), - - lifecycle: lifecycleEnum.singleton, }); export default fileSystemProvisionerStoreInjectable; diff --git a/src/extensions/extension-loader/extension-loader.injectable.ts b/src/extensions/extension-loader/extension-loader.injectable.ts index 16afc58ed6..e6dd489ecc 100644 --- a/src/extensions/extension-loader/extension-loader.injectable.ts +++ b/src/extensions/extension-loader/extension-loader.injectable.ts @@ -2,20 +2,20 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { ExtensionLoader } from "./extension-loader"; import updateExtensionsStateInjectable from "./update-extensions-state/update-extensions-state.injectable"; import createExtensionInstanceInjectable from "./create-extension-instance/create-extension-instance.injectable"; const extensionLoaderInjectable = getInjectable({ + id: "extension-loader", + instantiate: (di) => new ExtensionLoader({ updateExtensionsState: di.inject(updateExtensionsStateInjectable), createExtensionInstance: di.inject(createExtensionInstanceInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default extensionLoaderInjectable; 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..e808246033 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default updateExtensionsStateInjectable; 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..81e91c5e27 100644 --- a/src/extensions/extension-packages-root/extension-packages-root.injectable.ts +++ b/src/extensions/extension-packages-root/extension-packages-root.injectable.ts @@ -2,13 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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, }); export default extensionPackagesRootInjectable; diff --git a/src/extensions/extensions-store/extensions-store.injectable.ts b/src/extensions/extensions-store/extensions-store.injectable.ts index 764116d372..352922143a 100644 --- a/src/extensions/extensions-store/extensions-store.injectable.ts +++ b/src/extensions/extensions-store/extensions-store.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { ExtensionsStore } from "./extensions-store"; const extensionsStoreInjectable = getInjectable({ + id: "extensions-store", instantiate: () => ExtensionsStore.createInstance(), - lifecycle: lifecycleEnum.singleton, }); export default extensionsStoreInjectable; diff --git a/src/extensions/extensions.injectable.ts b/src/extensions/extensions.injectable.ts index fc02820e6c..36d6af1a92 100644 --- a/src/extensions/extensions.injectable.ts +++ b/src/extensions/extensions.injectable.ts @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import extensionLoaderInjectable from "./extension-loader/extension-loader.injectable"; const extensionsInjectable = getInjectable({ + id: "extensions", + instantiate: (di) => { const extensionLoader = di.inject(extensionLoaderInjectable); return computed(() => extensionLoader.enabledExtensionInstances); }, - - lifecycle: lifecycleEnum.singleton, }); export default extensionsInjectable; diff --git a/src/extensions/main-extensions.injectable.ts b/src/extensions/main-extensions.injectable.ts index 3cec8b3a56..07010af010 100644 --- a/src/extensions/main-extensions.injectable.ts +++ b/src/extensions/main-extensions.injectable.ts @@ -2,13 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { IComputedValue } from "mobx"; import extensionsInjectable from "./extensions.injectable"; import type { LensMainExtension } from "./lens-main-extension"; const mainExtensionsInjectable = getInjectable({ - lifecycle: lifecycleEnum.singleton, + id: "main-extensions", instantiate: (di) => di.inject(extensionsInjectable) as IComputedValue, diff --git a/src/extensions/renderer-extensions.injectable.ts b/src/extensions/renderer-extensions.injectable.ts index 3f06df5ca8..92c3037e01 100644 --- a/src/extensions/renderer-extensions.injectable.ts +++ b/src/extensions/renderer-extensions.injectable.ts @@ -2,14 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { IComputedValue } from "mobx"; 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, }); export default rendererExtensionsInjectable; 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..4ba900d410 100644 --- a/src/main/app-paths/app-name/app-name.injectable.ts +++ b/src/main/app-paths/app-name/app-name.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default appNameInjectable; diff --git a/src/main/app-paths/app-paths.injectable.ts b/src/main/app-paths/app-paths.injectable.ts index 0c32f79a0b..654f34d29b 100644 --- a/src/main/app-paths/app-paths.injectable.ts +++ b/src/main/app-paths/app-paths.injectable.ts @@ -3,9 +3,8 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { - DependencyInjectionContainer, + DiContainerForSetup, getInjectable, - lifecycleEnum, } from "@ogre-tools/injectable"; import { @@ -22,38 +21,40 @@ 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) => getAppPaths({ getAppPath: di.inject(getElectronAppPathInjectable) }), injectionToken: appPathsInjectionToken, - lifecycle: lifecycleEnum.singleton, }); 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 +62,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..76779ce5a0 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 @@ -2,11 +2,11 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; const directoryForIntegrationTestingInjectable = getInjectable({ + id: "directory-for-integration-testing", instantiate: () => process.env.CICD, - lifecycle: lifecycleEnum.singleton, }); export default directoryForIntegrationTestingInjectable; 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..52b037c4e1 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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..4a548a1f8e 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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) }), - - lifecycle: lifecycleEnum.singleton, }); export default getElectronAppPathInjectable; 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..13684bf8ec 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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..d0b517cf25 100644 --- a/src/main/app-paths/register-channel/register-channel.injectable.ts +++ b/src/main/app-paths/register-channel/register-channel.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default registerChannelInjectable; 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..636063d939 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), - - lifecycle: lifecycleEnum.singleton, }); export default setElectronAppPathInjectable; 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..7c258cabd7 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import directoryForKubeConfigsInjectable from "../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default kubeconfigSyncManagerInjectable; diff --git a/src/main/context-handler/create-context-handler.injectable.ts b/src/main/context-handler/create-context-handler.injectable.ts index e6a7df9b8a..47b935ceaa 100644 --- a/src/main/context-handler/create-context-handler.injectable.ts +++ b/src/main/context-handler/create-context-handler.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { Cluster } from "../../common/cluster/cluster"; 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), @@ -15,8 +17,6 @@ const createContextHandlerInjectable = getInjectable({ return (cluster: Cluster) => new ContextHandler(dependencies, cluster); }, - - lifecycle: lifecycleEnum.singleton, }); export default createContextHandlerInjectable; diff --git a/src/main/create-cluster/create-cluster.injectable.ts b/src/main/create-cluster/create-cluster.injectable.ts index be7c2a7953..c1c26217ae 100644 --- a/src/main/create-cluster/create-cluster.injectable.ts +++ b/src/main/create-cluster/create-cluster.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { Cluster, ClusterDependencies } from "../../common/cluster/cluster"; import directoryForKubeConfigsInjectable from "../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import createKubeconfigManagerInjectable from "../kubeconfig-manager/create-kubeconfig-manager.injectable"; @@ -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), @@ -27,8 +29,6 @@ const createClusterInjectable = getInjectable({ }, injectionToken: createClusterInjectionToken, - - lifecycle: lifecycleEnum.singleton, }); export default createClusterInjectable; 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..794cfc522a 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 @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import electronMenuItemsInjectable from "../../menu/electron-menu-items.injectable"; import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default initIpcMainHandlersInjectable; 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..6a8699cf9e 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 @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { KubeAuthProxy } from "./kube-auth-proxy"; 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); @@ -18,8 +20,6 @@ const createKubeAuthProxyInjectable = getInjectable({ return (cluster: Cluster, environmentVariables: NodeJS.ProcessEnv) => new KubeAuthProxy(dependencies, cluster, environmentVariables); }, - - lifecycle: lifecycleEnum.singleton, }); export default createKubeAuthProxyInjectable; diff --git a/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts b/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts index 49eb4681e5..fd75737555 100644 --- a/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts +++ b/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { Cluster } from "../../common/cluster/cluster"; import directoryForTempInjectable from "../../common/app-paths/directory-for-temp/directory-for-temp.injectable"; import { KubeconfigManager } from "./kubeconfig-manager"; @@ -12,6 +12,8 @@ export interface KubeConfigManagerInstantiationParameter { } const createKubeconfigManagerInjectable = getInjectable({ + id: "create-kubeconfig-manager", + instantiate: (di) => { const dependencies = { directoryForTemp: di.inject(directoryForTempInjectable), @@ -19,8 +21,6 @@ const createKubeconfigManagerInjectable = getInjectable({ return (cluster: Cluster) => new KubeconfigManager(dependencies, cluster); }, - - lifecycle: lifecycleEnum.singleton, }); export default createKubeconfigManagerInjectable; diff --git a/src/main/kubectl/bundled-kubectl.injectable.ts b/src/main/kubectl/bundled-kubectl.injectable.ts index 47d42741c0..a06cbedff9 100644 --- a/src/main/kubectl/bundled-kubectl.injectable.ts +++ b/src/main/kubectl/bundled-kubectl.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { getBundledKubectlVersion } from "../../common/utils"; import createKubectlInjectable from "./create-kubectl.injectable"; const bundledKubectlInjectable = getInjectable({ + id: "bundled-kubectl", + instantiate: (di) => { const createKubectl = di.inject(createKubectlInjectable); @@ -14,8 +16,6 @@ const bundledKubectlInjectable = getInjectable({ return createKubectl(bundledKubectlVersion); }, - - lifecycle: lifecycleEnum.singleton, }); export default bundledKubectlInjectable; diff --git a/src/main/kubectl/create-kubectl.injectable.ts b/src/main/kubectl/create-kubectl.injectable.ts index 305427da1a..dac0cf684c 100644 --- a/src/main/kubectl/create-kubectl.injectable.ts +++ b/src/main/kubectl/create-kubectl.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { Kubectl } from "./kubectl"; import directoryForKubectlBinariesInjectable from "./directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable"; import userStoreInjectable from "../../common/user-store/user-store.injectable"; const createKubectlInjectable = getInjectable({ + id: "create-kubectl", + instantiate: (di) => { const dependencies = { userStore: di.inject(userStoreInjectable), @@ -20,8 +22,6 @@ const createKubectlInjectable = getInjectable({ return (clusterVersion: string) => new Kubectl(dependencies, clusterVersion); }, - - lifecycle: lifecycleEnum.singleton, }); export default createKubectlInjectable; 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..75a3cc421d 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import directoryForBinariesInjectable from "../../../common/app-paths/directory-for-binaries/directory-for-binaries.injectable"; import path from "path"; const directoryForKubectlBinariesInjectable = getInjectable({ + id: "directory-for-kubectl-binaries", + instantiate: (di) => path.join(di.inject(directoryForBinariesInjectable), "kubectl"), - - lifecycle: lifecycleEnum.singleton, }); export default directoryForKubectlBinariesInjectable; diff --git a/src/main/menu/electron-menu-items.injectable.ts b/src/main/menu/electron-menu-items.injectable.ts index e62b34afe6..ff0206b734 100644 --- a/src/main/menu/electron-menu-items.injectable.ts +++ b/src/main/menu/electron-menu-items.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import mainExtensionsInjectable from "../../extensions/main-extensions.injectable"; const electronMenuItemsInjectable = getInjectable({ - lifecycle: lifecycleEnum.singleton, + id: "electron-menu-items", instantiate: (di) => { const extensions = di.inject(mainExtensionsInjectable); 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..f09a7c2b8a 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 @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../../../extensions/extension-loader/extension-loader.injectable"; 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), extensionsStore: di.inject(extensionsStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default lensProtocolRouterMainInjectable; 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..73477d1889 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 @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { shellApiRequest } from "./shell-api-request"; import createShellSessionInjectable from "../../shell-session/create-shell-session.injectable"; 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, }), - - lifecycle: lifecycleEnum.singleton, }); export default shellApiRequestInjectable; 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..c273f105d0 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 @@ -2,10 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { ShellRequestAuthenticator } from "./shell-request-authenticator"; const shellRequestAuthenticatorInjectable = getInjectable({ + id: "shell-request-authenticator", + instantiate: () => { const authenticator = new ShellRequestAuthenticator(); @@ -13,8 +15,6 @@ const shellRequestAuthenticatorInjectable = getInjectable({ return authenticator; }, - - lifecycle: lifecycleEnum.singleton, }); export default shellRequestAuthenticatorInjectable; diff --git a/src/main/router/router.injectable.ts b/src/main/router/router.injectable.ts index f5a28fd08a..d7372824b4 100644 --- a/src/main/router/router.injectable.ts +++ b/src/main/router/router.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { Router } from "../router"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default routerInjectable; 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..bc00f7d791 100644 --- a/src/main/routes/port-forward/create-port-forward.injectable.ts +++ b/src/main/routes/port-forward/create-port-forward.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -17,8 +19,6 @@ const createPortForwardInjectable = getInjectable({ return (pathToKubeConfig: string, args: PortForwardArgs) => new PortForward(dependencies, pathToKubeConfig, args); }, - - lifecycle: lifecycleEnum.singleton, }); export default createPortForwardInjectable; 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..af7758d0eb 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 @@ -3,15 +3,15 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { routePortForward } from "./route-port-forward"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default routePortForwardInjectable; diff --git a/src/main/shell-session/create-shell-session.injectable.ts b/src/main/shell-session/create-shell-session.injectable.ts index 47dba89f04..5bd5569053 100644 --- a/src/main/shell-session/create-shell-session.injectable.ts +++ b/src/main/shell-session/create-shell-session.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { Cluster } from "../../common/cluster/cluster"; import type WebSocket from "ws"; import localShellSessionInjectable from "./local-shell-session/local-shell-session.injectable"; @@ -16,14 +16,14 @@ interface Args { } const createShellSessionInjectable = getInjectable({ + id: "create-shell-session", + instantiate: (di) => ({ nodeName, ...rest }: Args) => !nodeName ? di.inject(localShellSessionInjectable, rest) : di.inject(nodeShellSessionInjectable, { nodeName, ...rest }), - - lifecycle: lifecycleEnum.singleton, }); export default createShellSessionInjectable; 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/shell-session/shell-env-modifier/terminal-shell-env-modify.injectable.ts b/src/main/shell-session/shell-env-modifier/terminal-shell-env-modify.injectable.ts index a6bd842f61..d0c6e2c54b 100644 --- a/src/main/shell-session/shell-env-modifier/terminal-shell-env-modify.injectable.ts +++ b/src/main/shell-session/shell-env-modifier/terminal-shell-env-modify.injectable.ts @@ -6,14 +6,16 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import mainExtensionsInjectable from "../../../extensions/main-extensions.injectable"; import { terminalShellEnvModify } from "./terminal-shell-env-modifiers"; - + const terminalShellEnvModifyInjectable = getInjectable({ + id: "terminal-shell-env-modify", + instantiate: (di) => terminalShellEnvModify({ extensions: di.inject(mainExtensionsInjectable), }), - + lifecycle: lifecycleEnum.singleton, }); - + export default terminalShellEnvModifyInjectable; diff --git a/src/main/tray/tray-menu-items.injectable.ts b/src/main/tray/tray-menu-items.injectable.ts index 5b3f5593f1..8ee9d25e5e 100644 --- a/src/main/tray/tray-menu-items.injectable.ts +++ b/src/main/tray/tray-menu-items.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import mainExtensionsInjectable from "../../extensions/main-extensions.injectable"; const trayItemsInjectable = getInjectable({ - lifecycle: lifecycleEnum.singleton, + id: "tray-items", instantiate: (di) => { const extensions = di.inject(mainExtensionsInjectable); 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..98af561838 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { catalogEntityRegistry } from "../catalog-entity-registry"; const catalogEntityRegistryInjectable = getInjectable({ + id: "catalog-entity-registry", instantiate: () => catalogEntityRegistry, - lifecycle: lifecycleEnum.singleton, }); export default catalogEntityRegistryInjectable; diff --git a/src/renderer/app-paths/app-paths.injectable.ts b/src/renderer/app-paths/app-paths.injectable.ts index a645b9a811..1e80d7cd82 100644 --- a/src/renderer/app-paths/app-paths.injectable.ts +++ b/src/renderer/app-paths/app-paths.injectable.ts @@ -2,15 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { AppPaths, appPathsInjectionToken, appPathsIpcChannel } from "../../common/app-paths/app-path-injection-token"; import getValueFromRegisteredChannelInjectable from "./get-value-from-registered-channel/get-value-from-registered-channel.injectable"; let syncAppPaths: AppPaths; const appPathsInjectable = getInjectable({ + id: "app-paths", + setup: async (di) => { - const getValueFromRegisteredChannel = di.inject( + const getValueFromRegisteredChannel = await di.inject( getValueFromRegisteredChannelInjectable, ); @@ -20,8 +22,6 @@ const appPathsInjectable = getInjectable({ instantiate: () => syncAppPaths, injectionToken: appPathsInjectionToken, - - lifecycle: lifecycleEnum.singleton, }); export default appPathsInjectable; 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..697783fbf5 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 @@ -2,15 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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) }), - - lifecycle: lifecycleEnum.singleton, }); export default getValueFromRegisteredChannelInjectable; 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..c0d7ff3afd 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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..ad71a3dd17 100644 --- a/src/renderer/cluster-frame-context/cluster-frame-context.injectable.ts +++ b/src/renderer/cluster-frame-context/cluster-frame-context.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { ClusterFrameContext } from "./cluster-frame-context"; import namespaceStoreInjectable from "../components/+namespaces/namespace-store/namespace-store.injectable"; import hostedClusterInjectable from "../../common/cluster-store/hosted-cluster.injectable"; const clusterFrameContextInjectable = getInjectable({ + id: "cluster-frame-context", + instantiate: (di) => { const cluster = di.inject(hostedClusterInjectable); @@ -19,8 +21,6 @@ const clusterFrameContextInjectable = getInjectable({ }, ); }, - - lifecycle: lifecycleEnum.singleton, }); export default clusterFrameContextInjectable; 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..8509366307 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 @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default catalogEntityStoreInjectable; 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..c978f8667e 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -15,8 +17,6 @@ const catalogPreviousActiveTabStorageInjectable = getInjectable({ browseCatalogTab, ); }, - - lifecycle: lifecycleEnum.singleton, }); export default catalogPreviousActiveTabStorageInjectable; 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..52eabc23eb 100644 --- a/src/renderer/components/+catalog/custom-category-columns.injectable.tsx +++ b/src/renderer/components/+catalog/custom-category-columns.injectable.tsx @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed, IComputedValue } from "mobx"; import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension"; import rendererExtensionsInjectable from "../../../extensions/renderer-extensions.injectable"; @@ -45,10 +45,11 @@ function getAdditionCategoryColumns({ extensions }: Dependencies): IComputedValu } const categoryColumnsInjectable = getInjectable({ + id: "category-columns", + instantiate: (di) => getAdditionCategoryColumns({ extensions: di.inject(rendererExtensionsInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default categoryColumnsInjectable; diff --git a/src/renderer/components/+catalog/custom-views.injectable.ts b/src/renderer/components/+catalog/custom-views.injectable.ts index 70fbd6457a..f131923a5c 100644 --- a/src/renderer/components/+catalog/custom-views.injectable.ts +++ b/src/renderer/components/+catalog/custom-views.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { orderBy } from "lodash"; import { computed, IComputedValue } from "mobx"; import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension"; @@ -49,10 +49,11 @@ function getCustomCategoryViews({ extensions }: Dependencies): IComputedValue getCustomCategoryViews({ extensions: di.inject(rendererExtensionsInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default customCategoryViewsInjectable; diff --git a/src/renderer/components/+catalog/get-category-columns.injectable.ts b/src/renderer/components/+catalog/get-category-columns.injectable.ts index 080fde7e29..ad6984d7c9 100644 --- a/src/renderer/components/+catalog/get-category-columns.injectable.ts +++ b/src/renderer/components/+catalog/get-category-columns.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { orderBy } from "lodash"; import type { IComputedValue } from "mobx"; import type { CatalogCategory, CatalogEntity } from "../../../common/catalog"; @@ -85,11 +85,11 @@ const getCategoryColumns = ({ extensionColumns }: Dependencies) => ({ activeCate }; const getCategoryColumnsInjectable = getInjectable({ + id: "get-category-columns", + instantiate: (di) => getCategoryColumns({ extensionColumns: di.inject(categoryColumnsInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default getCategoryColumnsInjectable; 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..69fdc7a3bc 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { ClusterOverviewStorageState, ClusterOverviewStore, @@ -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); @@ -34,8 +36,6 @@ const clusterOverviewStoreInjectable = getInjectable({ return store; }, - - lifecycle: lifecycleEnum.singleton, }); export default clusterOverviewStoreInjectable; diff --git a/src/renderer/components/+config/route-tabs.injectable.ts b/src/renderer/components/+config/route-tabs.injectable.ts index d715d4ac4b..91bf531eff 100644 --- a/src/renderer/components/+config/route-tabs.injectable.ts +++ b/src/renderer/components/+config/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import { HorizontalPodAutoscalers } from "../+config-autoscalers"; import { LimitRanges } from "../+config-limit-ranges"; @@ -81,10 +81,11 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const configRoutesInjectable = getInjectable({ + id: "config-routes", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default configRoutesInjectable; diff --git a/src/renderer/components/+custom-resources/custom-resources.injectable.ts b/src/renderer/components/+custom-resources/custom-resources.injectable.ts index 390025c256..c35a278afa 100644 --- a/src/renderer/components/+custom-resources/custom-resources.injectable.ts +++ b/src/renderer/components/+custom-resources/custom-resources.injectable.ts @@ -3,14 +3,14 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import { crdStore } from "./crd.store"; const customResourceDefinitionsInjectable = getInjectable({ - instantiate: () => computed(() => [...crdStore.items]), + id: "custom-resource-definitions", - lifecycle: lifecycleEnum.singleton, + instantiate: () => computed(() => [...crdStore.items]), }); export default customResourceDefinitionsInjectable; 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..0c06b6061b 100644 --- a/src/renderer/components/+custom-resources/grouped-custom-resources.injectable.ts +++ b/src/renderer/components/+custom-resources/grouped-custom-resources.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed, IComputedValue } from "mobx"; import type { CustomResourceDefinition } from "../../../common/k8s-api/endpoints"; import { getOrInsert } from "../../utils"; @@ -25,10 +25,11 @@ function getGroupedCustomResourceDefinitions({ definitions }: Dependencies) { } const groupedCustomResourceDefinitionsInjectable = getInjectable({ + id: "grouped-custom-resource-definitions", + instantiate: (di) => getGroupedCustomResourceDefinitions({ definitions: di.inject(customResourceDefinitionsInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default groupedCustomResourceDefinitionsInjectable; diff --git a/src/renderer/components/+custom-resources/route-tabs.injectable.ts b/src/renderer/components/+custom-resources/route-tabs.injectable.ts index 32940b33d6..87fd4b25d3 100644 --- a/src/renderer/components/+custom-resources/route-tabs.injectable.ts +++ b/src/renderer/components/+custom-resources/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed, IComputedValue } from "mobx"; import type { CustomResourceDefinition } from "../../../common/k8s-api/endpoints"; import { crdURL, crdDefinitionsRoute } from "../../../common/routes"; @@ -51,10 +51,11 @@ function getRouteTabs({ customResourcesDefinitions }: Dependencies) { } const customResourcesRouteTabsInjectable = getInjectable({ + id: "custom-resources-route-tabs", + instantiate: (di) => getRouteTabs({ customResourcesDefinitions: di.inject(groupedCustomResourceDefinitionsInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default customResourcesRouteTabsInjectable; 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..3703c8e56e 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { attemptInstallByInfo } from "./attempt-install-by-info"; import attemptInstallInjectable from "../attempt-install/attempt-install.injectable"; import getBaseRegistryUrlInjectable from "../get-base-registry-url/get-base-registry-url.injectable"; @@ -10,14 +10,14 @@ 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), getBaseRegistryUrl: di.inject(getBaseRegistryUrlInjectable), extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default attemptInstallByInfoInjectable; 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..21ceb73ecf 100644 --- a/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.ts +++ b/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import uninstallExtensionInjectable from "../uninstall-extension/uninstall-extension.injectable"; import { attemptInstall } from "./attempt-install"; @@ -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), @@ -23,8 +25,6 @@ const attemptInstallInjectable = getInjectable({ getExtensionDestFolder: di.inject(getExtensionDestFolderInjectable), extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default attemptInstallInjectable; 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..d0d71e6fbe 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 @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default createTempFilesAndValidateInjectable; 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..3062439e1b 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 @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionDiscoveryInjectable from "../../../../../extensions/extension-discovery/extension-discovery.injectable"; import { getExtensionDestFolder } from "./get-extension-dest-folder"; const getExtensionDestFolderInjectable = getInjectable({ + id: "get-extension-dest-folder", + instantiate: (di) => getExtensionDestFolder({ extensionDiscovery: di.inject(extensionDiscoveryInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default getExtensionDestFolderInjectable; 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..ebbc3639c5 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { unpackExtension } from "./unpack-extension"; import extensionLoaderInjectable from "../../../../../extensions/extension-loader/extension-loader.injectable"; import getExtensionDestFolderInjectable @@ -11,14 +11,14 @@ 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), getExtensionDestFolder: di.inject(getExtensionDestFolderInjectable), extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default unpackExtensionInjectable; 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..407668989f 100644 --- a/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.ts +++ b/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default attemptInstallsInjectable; 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..560b5adc74 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 @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default confirmUninstallExtensionInjectable; 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..274679c331 100644 --- a/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.ts +++ b/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import { disableExtension } from "./disable-extension"; const disableExtensionInjectable = getInjectable({ + id: "disable-extension", + instantiate: (di) => disableExtension({ extensionLoader: di.inject(extensionLoaderInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default disableExtensionInjectable; 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..19e5e83233 100644 --- a/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.ts +++ b/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import { enableExtension } from "./enable-extension"; const enableExtensionInjectable = getInjectable({ + id: "enable-extension", + instantiate: (di) => enableExtension({ extensionLoader: di.inject(extensionLoaderInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default enableExtensionInjectable; 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..abfb13e071 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 @@ -5,18 +5,17 @@ import { getInjectable, - lifecycleEnum, } from "@ogre-tools/injectable"; 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, }), - - lifecycle: lifecycleEnum.singleton, }); export default getBaseRegistryUrlInjectable; 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..36596cd1ff 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import attemptInstallInjectable from "../attempt-install/attempt-install.injectable"; import { installFromInput } from "./install-from-input"; import attemptInstallByInfoInjectable from "../attempt-install-by-info/attempt-install-by-info.injectable"; @@ -10,14 +10,14 @@ 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), attemptInstallByInfo: di.inject(attemptInstallByInfoInjectable), extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default installFromInputInjectable; 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 7e09c54621..1ae77d664a 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { requestOpenFilePickingDialog } from "../../ipc"; import { supportedExtensionFormats } from "./supported-extension-formats"; import attemptInstallsInjectable from "./attempt-installs/attempt-installs.injectable"; @@ -28,12 +28,12 @@ const installFromSelectFileDialog = ({ attemptInstalls, directoryForDownloads }: }; const installFromSelectFileDialogInjectable = getInjectable({ + id: "install-from-select-file-dialog", + instantiate: (di) => installFromSelectFileDialog({ attemptInstalls: di.inject(attemptInstallsInjectable), directoryForDownloads: di.inject(directoryForDownloadsInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default installFromSelectFileDialogInjectable; 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..1a693fa7a6 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 @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default installOnDropInjectable; 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..a060ed7e88 100644 --- a/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.ts +++ b/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import { uninstallExtension } from "./uninstall-extension"; import extensionInstallationStateStoreInjectable @@ -11,14 +11,14 @@ import extensionDiscoveryInjectable from "../../../../extensions/extension-discovery/extension-discovery.injectable"; const uninstallExtensionInjectable = getInjectable({ + id: "uninstall-extension", + instantiate: (di) => uninstallExtension({ extensionLoader: di.inject(extensionLoaderInjectable), extensionDiscovery: di.inject(extensionDiscoveryInjectable), extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default uninstallExtensionInjectable; 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..63d5c7a5fc 100644 --- a/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.ts +++ b/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; const userExtensionsInjectable = getInjectable({ - lifecycle: lifecycleEnum.singleton, + id: "user-extensions", instantiate: (di) => { const extensionLoader = di.inject(extensionLoaderInjectable); 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..a91a621625 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { createRelease, IReleaseCreatePayload, @@ -10,6 +10,8 @@ import { import releasesInjectable from "../releases.injectable"; const createReleaseInjectable = getInjectable({ + id: "create-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); @@ -21,8 +23,6 @@ const createReleaseInjectable = getInjectable({ return release; }; }, - - lifecycle: lifecycleEnum.singleton, }); export default createReleaseInjectable; 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..d9755e1e6d 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { deleteRelease, HelmRelease, @@ -10,6 +10,8 @@ import { import releasesInjectable from "../releases.injectable"; const deleteReleaseInjectable = getInjectable({ + id: "delete-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); @@ -19,8 +21,6 @@ const deleteReleaseInjectable = getInjectable({ releases.invalidate(); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default deleteReleaseInjectable; 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..096259a969 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 @@ -2,20 +2,20 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { getRelease } from "../../../../common/k8s-api/endpoints/helm-releases.api"; 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(); return await getRelease(release.name, release.namespace); }), - - lifecycle: lifecycleEnum.singleton, }); export default releaseDetailsInjectable; 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..8ed009932c 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 @@ -2,13 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import { matchPath } from "react-router"; import observableHistoryInjectable from "../../../navigation/observable-history.injectable"; import { releaseRoute, ReleaseRouteParams } from "../../../../common/routes"; const releaseRouteParametersInjectable = getInjectable({ + id: "release-route-parameters", + instantiate: (di) => { const observableHistory = di.inject(observableHistoryInjectable); @@ -24,8 +26,6 @@ const releaseRouteParametersInjectable = getInjectable({ return releasePathParameters.params; }); }, - - lifecycle: lifecycleEnum.singleton, }); export default releaseRouteParametersInjectable; 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..96cfd6c2dd 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { getReleaseValues } from "../../../../common/k8s-api/endpoints/helm-releases.api"; import { asyncComputed } from "@ogre-tools/injectable-react"; import releaseInjectable from "./release.injectable"; @@ -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(); @@ -29,8 +31,6 @@ const releaseValuesInjectable = getInjectable({ return ""; } }), - - lifecycle: lifecycleEnum.singleton, }); export default releaseValuesInjectable; 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..5506388af2 100644 --- a/src/renderer/components/+helm-releases/release-details/release.injectable.ts +++ b/src/renderer/components/+helm-releases/release-details/release.injectable.ts @@ -2,13 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { matches } from "lodash/fp"; import releasesInjectable from "../releases.injectable"; import releaseRouteParametersInjectable from "./release-route-parameters.injectable"; import { computed } from "mobx"; const releaseInjectable = getInjectable({ + id: "release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); const releaseRouteParameters = di.inject(releaseRouteParametersInjectable); @@ -23,8 +25,6 @@ const releaseInjectable = getInjectable({ return releases.value.get().find(matches({ name, namespace })); }); }, - - lifecycle: lifecycleEnum.singleton, }); export default releaseInjectable; 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..f0201ebee0 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 @@ -2,10 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { observable } from "mobx"; const userSuppliedValuesAreShownInjectable = getInjectable({ + id: "user-supplied-values-are-shown", + instantiate: () => { const state = observable.box(false); @@ -19,8 +21,6 @@ const userSuppliedValuesAreShownInjectable = getInjectable({ }, }; }, - - lifecycle: lifecycleEnum.singleton, }); export default userSuppliedValuesAreShownInjectable; 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..b81bdf438b 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default releaseRollbackDialogModelInjectable; diff --git a/src/renderer/components/+helm-releases/releases.injectable.ts b/src/renderer/components/+helm-releases/releases.injectable.ts index 9858fb1834..597400d661 100644 --- a/src/renderer/components/+helm-releases/releases.injectable.ts +++ b/src/renderer/components/+helm-releases/releases.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { asyncComputed } from "@ogre-tools/injectable-react"; import namespaceStoreInjectable from "../+namespaces/namespace-store/namespace-store.injectable"; import { listReleases } from "../../../common/k8s-api/endpoints/helm-releases.api"; const releasesInjectable = getInjectable({ + id: "releases", + instantiate: (di) => { const namespaceStore = di.inject(namespaceStoreInjectable); @@ -33,8 +35,6 @@ const releasesInjectable = getInjectable({ return releaseArrays.flat(); }, []); }, - - lifecycle: lifecycleEnum.singleton, }); export default releasesInjectable; diff --git a/src/renderer/components/+helm-releases/removable-releases.injectable.ts b/src/renderer/components/+helm-releases/removable-releases.injectable.ts index 6d41c63768..5170bd3da3 100644 --- a/src/renderer/components/+helm-releases/removable-releases.injectable.ts +++ b/src/renderer/components/+helm-releases/removable-releases.injectable.ts @@ -2,21 +2,21 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { observable } from "mobx"; import releasesInjectable from "./releases.injectable"; 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), deleteRelease: di.inject(deleteReleaseInjectable), releaseSelectionStatus: observable.map(), }), - - lifecycle: lifecycleEnum.singleton, }); export default removableReleasesInjectable; 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..c7ace21e06 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { rollbackRelease } from "../../../../common/k8s-api/endpoints/helm-releases.api"; import releasesInjectable from "../releases.injectable"; const rollbackReleaseInjectable = getInjectable({ + id: "rollback-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); @@ -16,7 +18,6 @@ const rollbackReleaseInjectable = getInjectable({ releases.invalidate(); }; }, - lifecycle: lifecycleEnum.singleton, }); export default rollbackReleaseInjectable; 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..3400728e77 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { IReleaseUpdatePayload, updateRelease, @@ -10,6 +10,8 @@ import { import releasesInjectable from "../releases.injectable"; const updateReleaseInjectable = getInjectable({ + id: "update-release", + instantiate: (di) => { const releases = di.inject(releasesInjectable); @@ -25,8 +27,6 @@ const updateReleaseInjectable = getInjectable({ return result; }; }, - - lifecycle: lifecycleEnum.singleton, }); export default updateReleaseInjectable; diff --git a/src/renderer/components/+helm/route-tabs.injectable.ts b/src/renderer/components/+helm/route-tabs.injectable.ts index 34422f7c4b..6b599a368a 100644 --- a/src/renderer/components/+helm/route-tabs.injectable.ts +++ b/src/renderer/components/+helm/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { TabLayoutRoute } from "../layout/tab-layout"; import { HelmCharts } from "../+helm-charts"; @@ -27,8 +27,8 @@ function getRouteTabs() { } const helmRoutesInjectable = getInjectable({ + id: "helm-routes", instantiate: () => getRouteTabs(), - lifecycle: lifecycleEnum.singleton, }); export default helmRoutesInjectable; 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..844c3912c0 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default addNamespaceDialogModelInjectable; 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..571029c853 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 @@ -3,15 +3,15 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { NamespaceSelectFilterModel } from "./namespace-select-filter-model"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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), }), - - 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..219094be1e 100644 --- a/src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts +++ b/src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { NamespaceStore } from "./namespace.store"; import apiManagerInjectable from "../../kube-object-menu/dependencies/api-manager.injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const namespaceStoreInjectable = getInjectable({ + id: "namespace-store", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); @@ -26,8 +28,6 @@ const namespaceStoreInjectable = getInjectable({ return namespaceStore; }, - - lifecycle: lifecycleEnum.singleton, }); export default namespaceStoreInjectable; diff --git a/src/renderer/components/+network/route-tabs.injectable.ts b/src/renderer/components/+network/route-tabs.injectable.ts index 95476fe17f..bef8a69d67 100644 --- a/src/renderer/components/+network/route-tabs.injectable.ts +++ b/src/renderer/components/+network/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { TabLayoutRoute } from "../layout/tab-layout"; import { Services } from "../+network-services"; @@ -70,10 +70,11 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const networkRouteTabsInjectable = getInjectable({ + id: "network-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default networkRouteTabsInjectable; 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..83492ad22c 100644 --- a/src/renderer/components/+preferences/app-preferences/app-preferences.injectable.ts +++ b/src/renderer/components/+preferences/app-preferences/app-preferences.injectable.ts @@ -3,17 +3,17 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import rendererExtensionsInjectable from "../../../../extensions/renderer-extensions.injectable"; import { getAppPreferences } from "./get-app-preferences"; const appPreferencesInjectable = getInjectable({ + id: "app-preferences", + instantiate: (di) => getAppPreferences({ extensions: di.inject(rendererExtensionsInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default appPreferencesInjectable; diff --git a/src/renderer/components/+storage/route-tabs.injectable.ts b/src/renderer/components/+storage/route-tabs.injectable.ts index 512e0ddc09..9c7acf50a9 100644 --- a/src/renderer/components/+storage/route-tabs.injectable.ts +++ b/src/renderer/components/+storage/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { TabLayoutRoute } from "../layout/tab-layout"; import { PersistentVolumes } from "../+storage-volumes"; @@ -52,10 +52,11 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const storageRouteTabsInjectable = getInjectable({ + id: "storage-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default storageRouteTabsInjectable; diff --git a/src/renderer/components/+user-management/route-tabs.injectable.ts b/src/renderer/components/+user-management/route-tabs.injectable.ts index a33249d5c6..c4c9f5c134 100644 --- a/src/renderer/components/+user-management/route-tabs.injectable.ts +++ b/src/renderer/components/+user-management/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { TabLayoutRoute } from "../layout/tab-layout"; import type { IsAllowedResource } from "../../../common/utils/is-allowed-resource.injectable"; @@ -82,10 +82,11 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const userManagementRouteTabsInjectable = getInjectable({ + id: "user-management-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default userManagementRouteTabsInjectable; 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..21f3f6690f 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import rendererExtensionsInjectable from "../../../../extensions/renderer-extensions.injectable"; import { computed } from "mobx"; const welcomeBannerItemsInjectable = getInjectable({ + id: "welcome-banner-items", + instantiate: (di) => { const extensions = di.inject(rendererExtensionsInjectable); @@ -14,8 +16,6 @@ const welcomeBannerItemsInjectable = getInjectable({ ...extensions.get().flatMap((extension) => extension.welcomeBanners), ]); }, - - lifecycle: lifecycleEnum.singleton, }); export default welcomeBannerItemsInjectable; 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..1fbfcffed6 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 @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import rendererExtensionsInjectable from "../../../../extensions/renderer-extensions.injectable"; import { getWelcomeMenuItems } from "./get-welcome-menu-items"; const welcomeMenuItemsInjectable = getInjectable({ + id: "welcome-menu-items", + instantiate: (di) => getWelcomeMenuItems({ extensions: di.inject(rendererExtensionsInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default welcomeMenuItemsInjectable; diff --git a/src/renderer/components/+workloads-overview/workloads.injectable.ts b/src/renderer/components/+workloads-overview/workloads.injectable.ts index 013a195816..646dcb6325 100644 --- a/src/renderer/components/+workloads-overview/workloads.injectable.ts +++ b/src/renderer/components/+workloads-overview/workloads.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { KubeResource } from "../../../common/rbac"; import type { KubeObjectStore } from "../../../common/k8s-api/kube-object.store"; import type { KubeObject } from "../../../common/k8s-api/kube-object"; @@ -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), @@ -33,8 +35,6 @@ const workloadsInjectable = getInjectable({ ["cronjobs", cronJobStore], ]), }), - - lifecycle: lifecycleEnum.singleton, }); export default workloadsInjectable; diff --git a/src/renderer/components/+workloads/route-tabs.injectable.ts b/src/renderer/components/+workloads/route-tabs.injectable.ts index e31c171d38..c263734af1 100644 --- a/src/renderer/components/+workloads/route-tabs.injectable.ts +++ b/src/renderer/components/+workloads/route-tabs.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { TabLayoutRoute } from "../layout/tab-layout"; import { WorkloadsOverview } from "../+workloads-overview/overview"; @@ -100,10 +100,11 @@ function getRouteTabs({ isAllowedResource }: Dependencies) { } const workloadsRouteTabsInjectable = getInjectable({ + id: "workloads-route-tabs", + instantiate: (di) => getRouteTabs({ isAllowedResource: di.inject(isAllowedResourceInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default workloadsRouteTabsInjectable; diff --git a/src/renderer/components/command-palette/command-overlay.injectable.ts b/src/renderer/components/command-palette/command-overlay.injectable.ts index c121fcae6b..542bab957d 100644 --- a/src/renderer/components/command-palette/command-overlay.injectable.ts +++ b/src/renderer/components/command-palette/command-overlay.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { observable } from "mobx"; import React from "react"; @@ -32,8 +32,8 @@ export class CommandOverlay { } const commandOverlayInjectable = getInjectable({ + id: "command-overlay", instantiate: () => new CommandOverlay(), - lifecycle: lifecycleEnum.singleton, }); export default commandOverlayInjectable; 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 2cefc91546..e951c7a713 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 @@ -12,7 +12,7 @@ import { HotbarSwitchCommand } from "../../hotbar/hotbar-switch-command"; import { HotbarRenameCommand } from "../../hotbar/hotbar-rename-command"; import { ActivateEntityCommand } from "../../activate-entity-command"; import type { CommandContext, CommandRegistration } from "./commands"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import commandOverlayInjectable from "../command-overlay.injectable"; import createTerminalTabInjectable from "../../dock/terminal/create-terminal-tab.injectable"; import type { DockTabCreate } from "../../dock/dock/store"; @@ -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,7 +214,6 @@ const internalCommandsInjectable = getInjectable({ .getItemsForKind, createTerminalTab: di.inject(createTerminalTabInjectable), }), - lifecycle: lifecycleEnum.singleton, }); export default internalCommandsInjectable; 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..997934b11b 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 @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed, IComputedValue } from "mobx"; import type { CustomResourceDefinition } from "../../../../common/k8s-api/endpoints"; import customResourceDefinitionsInjectable from "../../+custom-resources/custom-resources.injectable"; @@ -41,13 +41,13 @@ const instantiateRegisteredCommands = ({ extensions, customResourceDefinitions, }); const registeredCommandsInjectable = getInjectable({ + id: "registered-commands", + instantiate: (di) => instantiateRegisteredCommands({ extensions: di.inject(rendererExtensionsInjectable), customResourceDefinitions: di.inject(customResourceDefinitionsInjectable), internalCommands: di.inject(internalCommandsInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default registeredCommandsInjectable; 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..599696109c 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const clearCreateResourceTabDataInjectable = getInjectable({ createResourceTabStore.clearData(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default clearCreateResourceTabDataInjectable; 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..ab7d9b1de5 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -17,8 +19,6 @@ const createResourceTabInjectable = getInjectable({ kind: TabKind.CREATE_RESOURCE, }); }, - - lifecycle: lifecycleEnum.singleton, }); export default createResourceTabInjectable; 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..a86c5feb57 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { GroupSelectOption, SelectOption } from "../../select"; import userCreateResourceTemplatesInjectable from "./user-templates.injectable"; @@ -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); @@ -27,8 +29,6 @@ const createResourceTemplatesInjectable = getInjectable({ }) as GroupSelectOption>); }); }, - - lifecycle: lifecycleEnum.singleton, }); export default createResourceTemplatesInjectable; 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..a83b33011d 100644 --- a/src/renderer/components/dock/create-resource/lens-templates.injectable.ts +++ b/src/renderer/components/dock/create-resource/lens-templates.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import path from "path"; import { hasCorrectExtension } from "./has-correct-extension"; import "../../../../common/vars"; @@ -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), @@ -41,8 +43,6 @@ const lensCreateResourceTemplatesInjectable = getInjectable({ return ["lens", templates]; }, - - lifecycle: lifecycleEnum.singleton, }); export default lensCreateResourceTemplatesInjectable; diff --git a/src/renderer/components/dock/create-resource/store.injectable.ts b/src/renderer/components/dock/create-resource/store.injectable.ts index 0b005f96f9..4cad7384d8 100644 --- a/src/renderer/components/dock/create-resource/store.injectable.ts +++ b/src/renderer/components/dock/create-resource/store.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default createResourceTabStoreInjectable; 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..2fad8b074c 100644 --- a/src/renderer/components/dock/create-resource/user-templates.injectable.ts +++ b/src/renderer/components/dock/create-resource/user-templates.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { computed, IComputedValue, observable } from "mobx"; import path from "path"; import os from "os"; @@ -95,8 +95,8 @@ function watchUserCreateResourceTemplates(): IComputedValue { } const userCreateResourceTemplatesInjectable = getInjectable({ + id: "user-create-resource-templates", instantiate: () => watchUserCreateResourceTemplates(), - lifecycle: lifecycleEnum.singleton, }); export default userCreateResourceTemplatesInjectable; 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..399f091c76 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), @@ -14,8 +16,6 @@ const createDockTabStoreInjectable = getInjectable({ return (options: DockTabStoreOptions = {}) => new DockTabStore(dependencies, options); }, - - lifecycle: lifecycleEnum.singleton, }); export default createDockTabStoreInjectable; 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..ab7fdca2cd 100644 --- a/src/renderer/components/dock/dock/close-dock-tab.injectable.ts +++ b/src/renderer/components/dock/dock/close-dock-tab.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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,8 +16,6 @@ const closeDockTabInjectable = getInjectable({ dockStore.closeTab(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default closeDockTabInjectable; 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..84ee7c868e 100644 --- a/src/renderer/components/dock/dock/create-dock-tab.injectable.ts +++ b/src/renderer/components/dock/dock/create-dock-tab.injectable.ts @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); return (rawTabDesc: DockTabCreate, addNumber?: boolean): DockTab => dockStore.createTab(rawTabDesc, addNumber); }, - - lifecycle: lifecycleEnum.singleton, }); export default createDockTabInjectable; diff --git a/src/renderer/components/dock/dock/dock-storage.injectable.ts b/src/renderer/components/dock/dock/dock-storage.injectable.ts index e58127761f..df276290c9 100644 --- a/src/renderer/components/dock/dock/dock-storage.injectable.ts +++ b/src/renderer/components/dock/dock/dock-storage.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; import { DockStorageState, TabKind } from "./store"; const dockStorageInjectable = getInjectable({ + id: "dock-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); @@ -22,8 +24,6 @@ const dockStorageInjectable = getInjectable({ ], }); }, - - lifecycle: lifecycleEnum.singleton, }); export default dockStorageInjectable; diff --git a/src/renderer/components/dock/dock/rename-tab.injectable.ts b/src/renderer/components/dock/dock/rename-tab.injectable.ts index 38ceb4dcbe..b9f24f9cfc 100644 --- a/src/renderer/components/dock/dock/rename-tab.injectable.ts +++ b/src/renderer/components/dock/dock/rename-tab.injectable.ts @@ -2,11 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import dockStoreInjectable from "./store.injectable"; import type { TabId } from "./store"; const renameTabInjectable = getInjectable({ + id: "rename-tab", instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); @@ -15,8 +16,6 @@ const renameTabInjectable = getInjectable({ dockStore.renameTab(tabId, title); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default renameTabInjectable; 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..7951604deb 100644 --- a/src/renderer/components/dock/dock/select-dock-tab.injectable.ts +++ b/src/renderer/components/dock/dock/select-dock-tab.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { TabId } from "./store"; import dockStoreInjectable from "./store.injectable"; const selectDockTabInjectable = getInjectable({ + id: "select-dock-tab", + instantiate: (di) => { const dockStore = di.inject(dockStoreInjectable); @@ -14,8 +16,6 @@ const selectDockTabInjectable = getInjectable({ dockStore.selectTab(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default selectDockTabInjectable; diff --git a/src/renderer/components/dock/dock/store.injectable.ts b/src/renderer/components/dock/dock/store.injectable.ts index b61450ea54..dac05009ac 100644 --- a/src/renderer/components/dock/dock/store.injectable.ts +++ b/src/renderer/components/dock/dock/store.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { DockStore, TabKind } from "./store"; import dockStorageInjectable from "./dock-storage.injectable"; import clearLogTabDataInjectable from "../logs/clear-log-tab-data.injectable"; @@ -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: { @@ -28,8 +30,6 @@ const dockStoreInjectable = getInjectable({ [TabKind.POD_LOGS]: di.inject(isLogsTabDataValidInjectable), }, }), - - lifecycle: lifecycleEnum.singleton, }); export default dockStoreInjectable; 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..9f48fc2ee9 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const clearEditResourceTabDataInjectable = getInjectable({ editResourceTabStore.clearData(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default clearEditResourceTabDataInjectable; 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..eeba197acc 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import editResourceTabStoreInjectable from "./store.injectable"; import dockStoreInjectable from "../dock/store.injectable"; import type { KubeObject } from "../../../../common/k8s-api/kube-object"; @@ -45,12 +45,12 @@ const createEditResourceTab = ({ dockStore, editResourceStore }: Dependencies) = }; const createEditResourceTabInjectable = getInjectable({ + id: "create-edit-resource-tab", + instantiate: (di) => createEditResourceTab({ dockStore: di.inject(dockStoreInjectable), editResourceStore: di.inject(editResourceTabStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default createEditResourceTabInjectable; diff --git a/src/renderer/components/dock/edit-resource/store.injectable.ts b/src/renderer/components/dock/edit-resource/store.injectable.ts index ae2f462262..dbf4f44a6d 100644 --- a/src/renderer/components/dock/edit-resource/store.injectable.ts +++ b/src/renderer/components/dock/edit-resource/store.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default editResourceTabStoreInjectable; 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..68fbf3841c 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const clearInstallChartTabDataInjectable = getInjectable({ installChartTabStore.clearData(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default clearInstallChartTabDataInjectable; 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..4be192504e 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import installChartTabStoreInjectable from "./store.injectable"; import type { HelmChart } from "../../../../common/k8s-api/endpoints/helm-charts.api"; import { @@ -44,12 +44,12 @@ const createInstallChartTab = ({ createDockTab, installChartStore }: Dependencie }; const createInstallChartTabInjectable = getInjectable({ + id: "create-install-chart-tab", + instantiate: (di) => createInstallChartTab({ installChartStore: di.inject(installChartTabStoreInjectable), createDockTab: di.inject(createDockTabInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default createInstallChartTabInjectable; diff --git a/src/renderer/components/dock/install-chart/store.injectable.ts b/src/renderer/components/dock/install-chart/store.injectable.ts index f1d38d744a..01391a98c0 100644 --- a/src/renderer/components/dock/install-chart/store.injectable.ts +++ b/src/renderer/components/dock/install-chart/store.injectable.ts @@ -2,13 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { InstallChartTabStore } from "./store"; import createDockTabStoreInjectable from "../dock-tab-store/create-dock-tab-store.injectable"; import type { IReleaseUpdateDetails } from "../../../../common/k8s-api/endpoints/helm-releases.api"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const installChartTabStoreInjectable = getInjectable({ + id: "install-chart-tab-store", + instantiate: (di) => { const createDockTabStore = di.inject(createDockTabStoreInjectable); @@ -18,7 +20,6 @@ const installChartTabStoreInjectable = getInjectable({ detailsStore: createDockTabStore(), }); }, - lifecycle: lifecycleEnum.singleton, }); export default installChartTabStoreInjectable; 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..df9b1ca400 100644 --- a/src/renderer/components/dock/logs/are-logs-present.injectable.ts +++ b/src/renderer/components/dock/logs/are-logs-present.injectable.ts @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); return (tabId: TabId) => logStore.areLogsPresent(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default areLogsPresentInjectable; 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..523503b0b9 100644 --- a/src/renderer/components/dock/logs/call-for-logs.injectable.ts +++ b/src/renderer/components/dock/logs/call-for-logs.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { podsApi } from "../../../../common/k8s-api/endpoints"; const callForLogsInjectable = getInjectable({ + id: "call-for-logs", instantiate: () => podsApi.getLogs, - lifecycle: lifecycleEnum.singleton, }); export default callForLogsInjectable; 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..4b24ce4478 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const clearLogTabDataInjectable = getInjectable({ logTabStore.clearData(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default clearLogTabDataInjectable; 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..e7c03bc271 100644 --- a/src/renderer/components/dock/logs/create-logs-tab.injectable.ts +++ b/src/renderer/components/dock/logs/create-logs-tab.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { DockTabCreate, DockTab, TabKind, TabId } from "../dock/store"; import type { LogTabData } from "./tab-store"; import * as uuid from "uuid"; @@ -37,12 +37,12 @@ const createLogsTab = ({ createDockTab, setLogTabData }: Dependencies) => (title }; const createLogsTabInjectable = getInjectable({ + id: "create-logs-tab", + instantiate: (di) => createLogsTab({ createDockTab: di.inject(createDockTabInjectable), setLogTabData: di.inject(setLogTabDataInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default createLogsTabInjectable; 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..b16e883535 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { IPodContainer, Pod } from "../../../../common/k8s-api/endpoints"; import type { TabId } from "../dock/store"; import createLogsTabInjectable from "./create-logs-tab.injectable"; @@ -13,6 +13,8 @@ export interface PodLogsTabData { } const createPodLogsTabInjectable = getInjectable({ + id: "create-pod-logs-tab", + instantiate: (di) => { const createLogsTab = di.inject(createLogsTabInjectable); @@ -24,8 +26,6 @@ const createPodLogsTabInjectable = getInjectable({ selectedPodId: selectedPod.getId(), }); }, - - lifecycle: lifecycleEnum.singleton, }); export default createPodLogsTabInjectable; 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 c6f1fec9d0..6b96ff5af7 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { podsStore } from "../../+workloads-pods/pods.store"; import type { WorkloadKubeObject } from "../../../../common/k8s-api/workload-kube-object"; import type { TabId } from "../dock/store"; @@ -38,11 +38,11 @@ const createWorkloadLogsTab = ({ createLogsTab }: Dependencies) => ({ workload } }; const createWorkloadLogsTabInjectable = getInjectable({ + id: "create-workload-logs-tab", + instantiate: (di) => createWorkloadLogsTab({ createLogsTab: di.inject(createLogsTabInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default createWorkloadLogsTabInjectable; 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..980c96cf09 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); return (tabId: string): LogTabData => logTabStore.getData(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default getLogTabDataInjectable; 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..029e23a4c2 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const getLogsWithoutTimestampsInjectable = getInjectable({ + id: "get-logs-without-timestamps", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); return (tabId: string): string[] => logStore.getLogsWithoutTimestamps(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default getLogsWithoutTimestampsInjectable; diff --git a/src/renderer/components/dock/logs/get-logs.injectable.ts b/src/renderer/components/dock/logs/get-logs.injectable.ts index acd6d10137..54b02a3761 100644 --- a/src/renderer/components/dock/logs/get-logs.injectable.ts +++ b/src/renderer/components/dock/logs/get-logs.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const getLogsInjectable = getInjectable({ + id: "get-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); return (tabId: string): string[] => logStore.getLogs(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default getLogsInjectable; 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..20db0c054f 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const getTimestampSplitLogsInjectable = getInjectable({ + id: "get-timestamp-split-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); return (tabId: string): [string, string][] => logStore.getTimestampSplitLogs(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default getTimestampSplitLogsInjectable; 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..51e7d3b0ca 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); return (tabId: TabId) => logTabStore.isDataValid(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default isLogsTabDataValidInjectable; diff --git a/src/renderer/components/dock/logs/load-logs.injectable.ts b/src/renderer/components/dock/logs/load-logs.injectable.ts index 69be8a2e85..ec95bcbad2 100644 --- a/src/renderer/components/dock/logs/load-logs.injectable.ts +++ b/src/renderer/components/dock/logs/load-logs.injectable.ts @@ -2,13 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { IComputedValue } from "mobx"; import type { Pod } from "../../../../common/k8s-api/endpoints"; import logStoreInjectable from "./store.injectable"; import type { LogTabData } from "./tab-store"; const loadLogsInjectable = getInjectable({ + id: "load-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); @@ -18,8 +20,6 @@ const loadLogsInjectable = getInjectable({ logTabData: IComputedValue, ): Promise => logStore.load(tabId, pod, logTabData); }, - - lifecycle: lifecycleEnum.singleton, }); export default loadLogsInjectable; 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..a286c063bc 100644 --- a/src/renderer/components/dock/logs/reload-logs.injectable.ts +++ b/src/renderer/components/dock/logs/reload-logs.injectable.ts @@ -2,13 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { IComputedValue } from "mobx"; import type { Pod } from "../../../../common/k8s-api/endpoints"; import logStoreInjectable from "./store.injectable"; import type { LogTabData } from "./tab-store"; const reloadLogsInjectable = getInjectable({ + id: "reload-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); @@ -18,8 +20,6 @@ const reloadLogsInjectable = getInjectable({ logTabData: IComputedValue, ): Promise => logStore.reload(tabId, pod, logTabData); }, - - lifecycle: lifecycleEnum.singleton, }); export default reloadLogsInjectable; 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..642d5062ac 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 @@ -2,18 +2,18 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); return (tabId: string, data: LogTabData): void => logTabStore.setData(tabId, data); }, - - lifecycle: lifecycleEnum.singleton, }); export default setLogTabDataInjectable; 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..a5a609b200 100644 --- a/src/renderer/components/dock/logs/stop-loading-logs.injectable.ts +++ b/src/renderer/components/dock/logs/stop-loading-logs.injectable.ts @@ -2,17 +2,17 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import logStoreInjectable from "./store.injectable"; const stopLoadingLogsInjectable = getInjectable({ + id: "stop-loading-logs", + instantiate: (di) => { const logStore = di.inject(logStoreInjectable); return (tabId: string): void => logStore.stopLoadingLogs(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default stopLoadingLogsInjectable; diff --git a/src/renderer/components/dock/logs/store.injectable.ts b/src/renderer/components/dock/logs/store.injectable.ts index a1f4b79de9..30c6111a9d 100644 --- a/src/renderer/components/dock/logs/store.injectable.ts +++ b/src/renderer/components/dock/logs/store.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default logStoreInjectable; diff --git a/src/renderer/components/dock/logs/tab-store.injectable.ts b/src/renderer/components/dock/logs/tab-store.injectable.ts index 61d4667f55..b711cd8a46 100644 --- a/src/renderer/components/dock/logs/tab-store.injectable.ts +++ b/src/renderer/components/dock/logs/tab-store.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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), }), - - lifecycle: lifecycleEnum.singleton, }); export default logTabStoreInjectable; 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..cb017da0e0 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const clearTerminalTabDataInjectable = getInjectable({ terminalStore.destroy(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default clearTerminalTabDataInjectable; 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..8ee4ab45b0 100644 --- a/src/renderer/components/dock/terminal/create-terminal-tab.injectable.ts +++ b/src/renderer/components/dock/terminal/create-terminal-tab.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -17,8 +19,6 @@ const createTerminalTabInjectable = getInjectable({ kind: TabKind.TERMINAL, }); }, - - lifecycle: lifecycleEnum.singleton, }); export default createTerminalTabInjectable; diff --git a/src/renderer/components/dock/terminal/create-terminal.injectable.ts b/src/renderer/components/dock/terminal/create-terminal.injectable.ts index 2dc6f04941..40bba50224 100644 --- a/src/renderer/components/dock/terminal/create-terminal.injectable.ts +++ b/src/renderer/components/dock/terminal/create-terminal.injectable.ts @@ -2,14 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { Terminal } from "./terminal"; 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, }); export default createTerminalInjectable; 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..2dcf0fa62b 100644 --- a/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts +++ b/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts @@ -2,19 +2,19 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { TerminalApi } from "../../../api/terminal-api"; 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); return (tabId: TabId): TerminalApi => terminalStore.getTerminalApi(tabId); }, - - lifecycle: lifecycleEnum.singleton, }); export default getTerminalApiInjectable; diff --git a/src/renderer/components/dock/terminal/send-command.injectable.ts b/src/renderer/components/dock/terminal/send-command.injectable.ts index 6e6b970b21..c193d4804c 100644 --- a/src/renderer/components/dock/terminal/send-command.injectable.ts +++ b/src/renderer/components/dock/terminal/send-command.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { when } from "mobx"; import { TerminalApi, TerminalChannels } from "../../../api/terminal-api"; import { noop } from "../../../utils"; @@ -79,13 +79,13 @@ const sendCommand = ({ selectTab, createTerminalTab, getTerminalApi }: Dependenc }; const sendCommandInjectable = getInjectable({ + id: "send-command", + instantiate: (di) => sendCommand({ createTerminalTab: di.inject(createTerminalTabInjectable), selectTab: di.inject(selectDockTabInjectable), getTerminalApi: di.inject(getTerminalApiInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default sendCommandInjectable; diff --git a/src/renderer/components/dock/terminal/store.injectable.ts b/src/renderer/components/dock/terminal/store.injectable.ts index 06c4c4d7f4..b04e8e932e 100644 --- a/src/renderer/components/dock/terminal/store.injectable.ts +++ b/src/renderer/components/dock/terminal/store.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { TerminalStore } from "./store"; import createTerminalInjectable from "./create-terminal.injectable"; const terminalStoreInjectable = getInjectable({ + id: "terminal-store", + instantiate: (di) => new TerminalStore({ createTerminal: di.inject(createTerminalInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default terminalStoreInjectable; 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..08187d992c 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const clearUpgradeChartTabDataInjectable = getInjectable({ upgradeChartTabStore.clearData(tabId); }; }, - - lifecycle: lifecycleEnum.singleton, }); export default clearUpgradeChartTabDataInjectable; 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 8821f55fbf..0a50681a93 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import upgradeChartTabStoreInjectable from "./store.injectable"; import dockStoreInjectable from "../dock/store.injectable"; import type { HelmRelease } from "../../../../common/k8s-api/endpoints/helm-releases.api"; @@ -45,12 +45,12 @@ const createUpgradeChartTab = ({ upgradeChartStore, dockStore }: Dependencies) = }; const createUpgradeChartTabInjectable = getInjectable({ + id: "create-upgrade-chart-tab", + instantiate: (di) => createUpgradeChartTab({ upgradeChartStore: di.inject(upgradeChartTabStoreInjectable), dockStore: di.inject(dockStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default createUpgradeChartTabInjectable; diff --git a/src/renderer/components/dock/upgrade-chart/store.injectable.ts b/src/renderer/components/dock/upgrade-chart/store.injectable.ts index 13e69e9b10..29a53c41d3 100644 --- a/src/renderer/components/dock/upgrade-chart/store.injectable.ts +++ b/src/renderer/components/dock/upgrade-chart/store.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { UpgradeChartTabStore } from "./store"; import createDockTabStoreInjectable from "../dock-tab-store/create-dock-tab-store.injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; const upgradeChartTabStoreInjectable = getInjectable({ + id: "upgrade-chart-tab-store", + instantiate: (di) => { const createDockTabStore = di.inject(createDockTabStoreInjectable); @@ -16,8 +18,6 @@ const upgradeChartTabStoreInjectable = getInjectable({ valuesStore: createDockTabStore(), }); }, - - lifecycle: lifecycleEnum.singleton, }); export default upgradeChartTabStoreInjectable; 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..88ce20801d 100644 --- a/src/renderer/components/drawer/drawer-storage/drawer-storage.injectable.ts +++ b/src/renderer/components/drawer/drawer-storage/drawer-storage.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; export const defaultDrawerWidth = 725; const drawerStorageInjectable = getInjectable({ + id: "drawer-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); @@ -15,8 +17,6 @@ const drawerStorageInjectable = getInjectable({ width: defaultDrawerWidth, }); }, - - lifecycle: lifecycleEnum.singleton, }); export default drawerStorageInjectable; 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..815d73493b 100644 --- a/src/renderer/components/input/validators/unique-hotbar-name.injectable.ts +++ b/src/renderer/components/input/validators/unique-hotbar-name.injectable.ts @@ -3,17 +3,18 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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, }); export default uniqueHotbarNameInjectable; diff --git a/src/renderer/components/item-object-list/storage.injectable.ts b/src/renderer/components/item-object-list/storage.injectable.ts index a105d35472..bd33b3b8d0 100644 --- a/src/renderer/components/item-object-list/storage.injectable.ts +++ b/src/renderer/components/item-object-list/storage.injectable.ts @@ -2,10 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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); @@ -13,8 +15,6 @@ const itemListLayoutStorageInjectable = getInjectable({ showFilters: false, // setup defaults }); }, - - lifecycle: lifecycleEnum.singleton, }); export default itemListLayoutStorageInjectable; 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..0fc1dd740b 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 @@ -3,11 +3,11 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { apiManager } from "../../../../common/k8s-api/api-manager"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; const apiManagerInjectable = getInjectable({ + id: "api-manager", instantiate: () => apiManager, - lifecycle: lifecycleEnum.singleton, }); export default apiManagerInjectable; 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..ce399fb406 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 @@ -3,11 +3,11 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { hideDetails } from "../../kube-detail-params"; -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; const hideDetailsInjectable = getInjectable({ + id: "hide-details", instantiate: () => hideDetails, - lifecycle: lifecycleEnum.singleton, }); export default hideDetailsInjectable; 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 f3667b4cc9..c7f8b1b22f 100644 --- a/src/renderer/components/layout/sidebar-storage/sidebar-storage.injectable.ts +++ b/src/renderer/components/layout/sidebar-storage/sidebar-storage.injectable.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 { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; export interface SidebarStorageState { @@ -15,6 +15,8 @@ export interface SidebarStorageState { export const defaultSidebarWidth = 200; const sidebarStorageInjectable = getInjectable({ + id: "sidebar-storage", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); @@ -23,8 +25,6 @@ const sidebarStorageInjectable = getInjectable({ expanded: {}, }); }, - - lifecycle: lifecycleEnum.singleton, }); export default sidebarStorageInjectable; 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..851834190f 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 @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; 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); @@ -14,8 +16,6 @@ const topBarItemsInjectable = getInjectable({ extensions.get().flatMap((extension) => extension.topBarItems), ); }, - - lifecycle: lifecycleEnum.singleton, }); export default topBarItemsInjectable; 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/status-bar/registered-status-bar-items.injectable.tsx b/src/renderer/components/status-bar/registered-status-bar-items.injectable.tsx index b99edba382..14c5f4af14 100644 --- a/src/renderer/components/status-bar/registered-status-bar-items.injectable.tsx +++ b/src/renderer/components/status-bar/registered-status-bar-items.injectable.tsx @@ -63,6 +63,8 @@ function getRegisteredStatusBarItems({ registrations }: Dependencies): IComputed } const registeredStatusBarItemsInjectable = getInjectable({ + id: "registered-status-bar-items", + instantiate: (di) => getRegisteredStatusBarItems({ registrations: di.inject(statusBarItemsInjectable), }), diff --git a/src/renderer/components/status-bar/status-bar-items.injectable.ts b/src/renderer/components/status-bar/status-bar-items.injectable.ts index 33d04cb0fe..193ac027d8 100644 --- a/src/renderer/components/status-bar/status-bar-items.injectable.ts +++ b/src/renderer/components/status-bar/status-bar-items.injectable.ts @@ -7,6 +7,8 @@ import { computed } from "mobx"; import rendererExtensionsInjectable from "../../../extensions/renderer-extensions.injectable"; const statusBarItemsInjectable = getInjectable({ + id: "status-bar-items", + instantiate: (di) => { const extensions = di.inject(rendererExtensionsInjectable); diff --git a/src/renderer/components/status-bar/status-bar.test.tsx b/src/renderer/components/status-bar/status-bar.test.tsx index 6055edf403..95d747b85b 100644 --- a/src/renderer/components/status-bar/status-bar.test.tsx +++ b/src/renderer/components/status-bar/status-bar.test.tsx @@ -10,7 +10,7 @@ import { getDiForUnitTesting } from "../../getDiForUnitTesting"; import type { DiRender } from "../test-utils/renderFor"; import { renderFor } from "../test-utils/renderFor"; import { computed, IObservableArray, observable } from "mobx"; -import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; import statusBarItemsInjectable from "./status-bar-items.injectable"; import type { StatusBarRegistration } from "./status-bar-registration"; import { LensRendererExtension } from "../../../extensions/lens-renderer-extension"; @@ -35,7 +35,7 @@ class SomeTestExtension extends LensRendererExtension { describe("", () => { let render: DiRender; - let di: ConfigurableDependencyInjectionContainer; + let di: DiContainer; let statusBarItems: IObservableArray; 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..b0fc376ae1 100644 --- a/src/renderer/components/table/table-model/table-model.injectable.ts +++ b/src/renderer/components/table/table-model/table-model.injectable.ts @@ -2,11 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; import { TableModel, TableStorageModel } from "./table-model"; const tableModelInjectable = getInjectable({ + id: "table-model", + instantiate: (di) => { const createStorage = di.inject(createStorageInjectable); @@ -18,8 +20,6 @@ const tableModelInjectable = getInjectable({ storage, }); }, - - lifecycle: lifecycleEnum.singleton, }); export default tableModelInjectable; 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..a0cfba7701 100644 --- a/src/renderer/create-cluster/create-cluster.injectable.ts +++ b/src/renderer/create-cluster/create-cluster.injectable.ts @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { Cluster, ClusterDependencies } from "../../common/cluster/cluster"; import directoryForKubeConfigsInjectable from "../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import { createClusterInjectionToken } from "../../common/cluster/create-cluster-injection-token"; const createClusterInjectable = getInjectable({ + id: "create-cluster", + instantiate: (di) => { const dependencies: ClusterDependencies = { directoryForKubeConfigs: di.inject(directoryForKubeConfigsInjectable), @@ -22,8 +24,6 @@ const createClusterInjectable = getInjectable({ }, injectionToken: createClusterInjectionToken, - - lifecycle: lifecycleEnum.singleton, }); export default createClusterInjectable; 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..87f3937fe0 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 @@ -2,13 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default frameRoutingIdInjectable; 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..f746d33d1a 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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..cc1140ca89 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { initClusterFrame } from "./init-cluster-frame"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import catalogEntityRegistryInjectable from "../../../api/catalog-entity-registry/catalog-entity-registry.injectable"; @@ -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), @@ -22,8 +24,6 @@ const initClusterFrameInjectable = getInjectable({ clusterFrameContext: di.inject(clusterFrameContextInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default initClusterFrameInjectable; 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..4d78260c19 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 @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { initRootFrame } from "./init-root-frame"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import ipcRendererInjectable from "../../../app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable"; @@ -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); @@ -30,8 +32,6 @@ const initRootFrameInjectable = getInjectable({ catalogEntityRegistry: di.inject(catalogEntityRegistryInjectable), }); }, - - lifecycle: lifecycleEnum.singleton, }); export default initRootFrameInjectable; 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..3fc8aa60d3 100644 --- a/src/renderer/kube-watch-api/kube-watch-api.injectable.ts +++ b/src/renderer/kube-watch-api/kube-watch-api.injectable.ts @@ -2,16 +2,16 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import clusterFrameContextInjectable from "../cluster-frame-context/cluster-frame-context.injectable"; import { KubeWatchApi } from "./kube-watch-api"; const kubeWatchApiInjectable = getInjectable({ + id: "kube-watch-api", + instantiate: (di) => new KubeWatchApi({ clusterFrameContext: di.inject(clusterFrameContextInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default kubeWatchApiInjectable; diff --git a/src/renderer/kube-watch-api/subscribe-stores.injectable.ts b/src/renderer/kube-watch-api/subscribe-stores.injectable.ts index 35eb3a722e..81c38c387e 100644 --- a/src/renderer/kube-watch-api/subscribe-stores.injectable.ts +++ b/src/renderer/kube-watch-api/subscribe-stores.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default subscribeStoresInjectable; diff --git a/src/renderer/navigation/history.injectable.ts b/src/renderer/navigation/history.injectable.ts index 0f5acaa2d8..4361dc9391 100644 --- a/src/renderer/navigation/history.injectable.ts +++ b/src/renderer/navigation/history.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { history } from "./history"; const historyInjectable = getInjectable({ + id: "history", instantiate: () => history, - lifecycle: lifecycleEnum.singleton, }); export default historyInjectable; diff --git a/src/renderer/navigation/observable-history.injectable.ts b/src/renderer/navigation/observable-history.injectable.ts index db50db04f2..b4995c67c2 100644 --- a/src/renderer/navigation/observable-history.injectable.ts +++ b/src/renderer/navigation/observable-history.injectable.ts @@ -2,14 +2,13 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { navigation as observableHistory } from "./history"; const observableHistoryInjectable = getInjectable({ + id: "observable-history", instantiate: () => observableHistory, - - lifecycle: lifecycleEnum.singleton, }); export default observableHistoryInjectable; 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..4a4528214f 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 @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } 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, }); export default portForwardDialogModelInjectable; 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..0f90c2d705 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 @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { PortForwardStore } from "./port-forward-store"; 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); @@ -18,8 +20,6 @@ const portForwardStoreInjectable = getInjectable({ return new PortForwardStore({ storage }); }, - - lifecycle: lifecycleEnum.singleton, }); export default portForwardStoreInjectable; 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..26d7968044 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 @@ -2,12 +2,14 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import attemptInstallByInfoInjectable from "../../components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable"; 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), @@ -15,8 +17,6 @@ const bindProtocolAddRouteHandlersInjectable = getInjectable({ lensProtocolRouterRendererInjectable, ), }), - - lifecycle: lifecycleEnum.singleton, }); export default bindProtocolAddRouteHandlersInjectable; 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..9aa3df8a0a 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 @@ -2,20 +2,20 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import extensionLoaderInjectable from "../../../extensions/extension-loader/extension-loader.injectable"; import { LensProtocolRouterRenderer } from "./lens-protocol-router-renderer"; 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), extensionsStore: di.inject(extensionsStoreInjectable), }), - - lifecycle: lifecycleEnum.singleton, }); export default lensProtocolRouterRendererInjectable; 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..69a999c809 100644 --- a/src/renderer/utils/create-storage/create-storage.injectable.ts +++ b/src/renderer/utils/create-storage/create-storage.injectable.ts @@ -2,13 +2,15 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable"; import { createStorage } from "./create-storage"; 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), @@ -18,8 +20,6 @@ const createStorageInjectable = getInjectable({ directoryForLensLocalStorageInjectable, ), }), - - lifecycle: lifecycleEnum.singleton, }); export default createStorageInjectable; diff --git a/src/renderer/utils/save-file.injectable.ts b/src/renderer/utils/save-file.injectable.ts index 593c6955dc..f38a031e0e 100644 --- a/src/renderer/utils/save-file.injectable.ts +++ b/src/renderer/utils/save-file.injectable.ts @@ -2,12 +2,12 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import { saveFileDialog } from "./saveFile"; const openSaveFileDialogInjectable = getInjectable({ + id: "open-save-file-dialog", instantiate: () => saveFileDialog, - lifecycle: lifecycleEnum.singleton, }); export default openSaveFileDialogInjectable; diff --git a/src/renderer/window/event-listener.injectable.ts b/src/renderer/window/event-listener.injectable.ts index cebb27d87e..5f682d956d 100644 --- a/src/renderer/window/event-listener.injectable.ts +++ b/src/renderer/window/event-listener.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { getInjectable } from "@ogre-tools/injectable"; import type { Disposer } from "../utils"; function addWindowEventListener(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Disposer { @@ -13,8 +13,8 @@ function addWindowEventListener(type: K, listene } const windowAddEventListenerInjectable = getInjectable({ + id: "window-add-event-listener", instantiate: () => addWindowEventListener, - lifecycle: lifecycleEnum.singleton, }); export default windowAddEventListenerInjectable; 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, diff --git a/yarn.lock b/yarn.lock index 86ba61eb62..dec70d66da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -946,28 +946,28 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@ogre-tools/fp@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@ogre-tools/fp/-/fp-3.0.0.tgz#808292075644590a0f875211361f8650dee0587b" - integrity sha512-fZdeMY7Jj690V/RnJ2Lc3hnEGATJ1rp1R4pb1k0tiQgDC4Q9Neekv76z4HereOTG1SjpdF6tJTIaff/vJ/vYqA== +"@ogre-tools/fp@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@ogre-tools/fp/-/fp-5.0.1.tgz#e9953a59b36a747f8248e2e738200b1584e2b40f" + integrity sha512-SmEvCVwBwjzgJ9/BporJ21oLq7cPurl0ECY3WFD1GhwVI8D4R6kZeZkWGKOOp/hG2WRcu9c13HM6JpkL+VUTVQ== dependencies: lodash "^4.17.21" -"@ogre-tools/injectable-react@3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-react/-/injectable-react-3.2.1.tgz#b0bff8c32a2eb77653cc4b0496cd123c80cfaae5" - integrity sha512-ufC9bR5nnO/cQJ6TiIxKdg0j2liGPTb6XvuK/0QGeGwd534giMHHL5L4CxF6qRLX6QDQ3FejhOTUn7+DV5uugg== +"@ogre-tools/injectable-react@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-react/-/injectable-react-5.0.1.tgz#fbab22b5779e30aef0007b0507e889434563f74b" + integrity sha512-34cSDwdU5DWiHNVfENJjF0k+baS0EBafYB+GjEmap5Au3QBSbej6P+h9b5QDRsFhzRxmEnIapsaQh00bpwHh2A== dependencies: - "@ogre-tools/fp" "^3.0.0" - "@ogre-tools/injectable" "^3.2.1" + "@ogre-tools/fp" "^5.0.1" + "@ogre-tools/injectable" "^5.0.1" lodash "^4.17.21" -"@ogre-tools/injectable@3.2.1", "@ogre-tools/injectable@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@ogre-tools/injectable/-/injectable-3.2.1.tgz#30ca60f47b84c91219acb333d4342df4ccd2827c" - integrity sha512-IEG3IIYTrTkKemDkxcI+qL8EDDQB3RS8k1qxy4obQ9g3SAURWUfB1j02dBbcIYmtOHEXWtP3AY57HE5sPG0prQ== +"@ogre-tools/injectable@5.0.1", "@ogre-tools/injectable@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@ogre-tools/injectable/-/injectable-5.0.1.tgz#5947877e928f381e89f64516a9beb69489fecd42" + integrity sha512-pNvHrMseHk4vwDDba92tVfNR6AXk7IblKwIP1nY2Ccs7WCY2GSiC3zBWlYmfTBW/whjJS/6Q4+L6XhfP8zYKyw== dependencies: - "@ogre-tools/fp" "^3.0.0" + "@ogre-tools/fp" "^5.0.1" lodash "^4.17.21" "@panva/asn1.js@^1.0.0":