From ff49246c605fa3636b1638b1a83fedcbb4e450af Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 2 Mar 2023 11:13:46 -0500 Subject: [PATCH] Fixup uses of AsyncResult and autoBind Signed-off-by: Sebastian Malton --- packages/core/src/common/k8s/resource-stack.ts | 4 ++-- .../main/request-system-cas.injectable.darwin.ts | 4 ++-- ...add-custom-helm-repository-in-preferences.test.ts | 4 ++-- ...-helm-repository-from-list-in-preferences.test.ts | 4 ++-- ...-list-of-active-repository-in-preferences.test.ts | 4 ++-- .../main/compute-shell-environment.injectable.ts | 4 ++-- .../main/cluster/request-api-resources.injectable.ts | 4 ++-- .../core/src/main/cluster/request-api-versions.ts | 4 ++-- .../request-kube-api-resources-for.injectable.ts | 4 ++-- .../src/main/helm/exec-helm/exec-helm.injectable.ts | 4 ++-- .../helm/get-helm-env/get-helm-env.injectable.ts | 4 ++-- .../call-for-helm-manifest.injectable.ts | 4 ++-- .../exec-file-with-input.injectable.ts | 4 ++-- .../exec-file-with-input.test.ts | 4 ++-- .../get-helm-release-resources.injectable.ts | 4 ++-- .../get-helm-release-resources.test.ts | 4 ++-- .../remove-helm-repository.injectable.ts | 4 ++-- .../src/main/resource-applier/resource-applier.ts | 12 ++++++------ .../src/renderer/components/+catalog/catalog.tsx | 2 +- .../request-detailed-helm-release.injectable.ts | 4 ++-- .../core/src/renderer/components/+nodes/store.ts | 2 +- .../components/cluster-manager/cluster-manager.tsx | 2 +- .../core/src/renderer/components/dock/dock/store.ts | 4 ++-- .../call-for-patch-resource.injectable.ts | 4 ++-- .../call-for-resource.injectable.ts | 4 ++-- .../upgrade-chart/upgrade-chart-model.injectable.ts | 10 +++++----- .../renderer/components/dock/upgrade-chart/view.tsx | 8 ++++---- .../core/src/renderer/components/drawer/drawer.tsx | 3 ++- .../item-object-list/page-filters/store.ts | 2 +- .../kube-object-detail-items.injectable.ts | 2 +- .../kubeconfig-dialog/kubeconfig-dialog.tsx | 3 ++- .../src/renderer/components/layout/main-layout.tsx | 2 +- .../src/renderer/components/layout/sidebar-item.tsx | 2 +- .../components/table/table-model/table-model.ts | 2 +- .../src/renderer/components/tooltip/withTooltip.tsx | 2 +- packages/core/src/renderer/ipc/index.ts | 2 +- .../src/renderer/port-forward/port-forward-item.ts | 2 +- 37 files changed, 72 insertions(+), 70 deletions(-) diff --git a/packages/core/src/common/k8s/resource-stack.ts b/packages/core/src/common/k8s/resource-stack.ts index 325358b2d3..75460423d1 100644 --- a/packages/core/src/common/k8s/resource-stack.ts +++ b/packages/core/src/common/k8s/resource-stack.ts @@ -72,7 +72,7 @@ export class ResourceStack { return ""; } - protected async applyResources(resources: string[], extraArgs: string[] = []): Promise> { + protected async applyResources(resources: string[], extraArgs: string[] = []): AsyncResult { const kubectlArgs = [...extraArgs, ...this.getAdditionalArgs(extraArgs)]; return this.dependencies.kubectlApplyAll({ @@ -82,7 +82,7 @@ export class ResourceStack { }); } - protected async deleteResources(resources: string[], extraArgs: string[] = []): Promise> { + protected async deleteResources(resources: string[], extraArgs: string[] = []): AsyncResult { const kubectlArgs = [...extraArgs, ...this.getAdditionalArgs(extraArgs)]; return this.dependencies.kubectlDeleteAll({ diff --git a/packages/core/src/features/certificate-authorities/main/request-system-cas.injectable.darwin.ts b/packages/core/src/features/certificate-authorities/main/request-system-cas.injectable.darwin.ts index 62cf75f6ff..66c24a1235 100644 --- a/packages/core/src/features/certificate-authorities/main/request-system-cas.injectable.darwin.ts +++ b/packages/core/src/features/certificate-authorities/main/request-system-cas.injectable.darwin.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import execFileInjectable from "../../../common/fs/exec-file.injectable"; import loggerInjectable from "../../../common/logger.injectable"; -import type { AsyncResult } from "../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import { requestSystemCAsInjectionToken } from "../common/request-system-cas-token"; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet#other_assertions @@ -17,7 +17,7 @@ const requestSystemCAsInjectable = getInjectable({ const execFile = di.inject(execFileInjectable); const logger = di.inject(loggerInjectable); - const execSecurity = async (...args: string[]): Promise> => { + const execSecurity = async (...args: string[]): AsyncResult => { const result = await execFile("/usr/bin/security", args); if (!result.callWasSuccessful) { diff --git a/packages/core/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts b/packages/core/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts index e1ee87d730..fbf5daae98 100644 --- a/packages/core/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts +++ b/packages/core/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts @@ -17,7 +17,7 @@ import requestPublicHelmRepositoriesInjectable from "./child-features/preference import isPathInjectable from "../../renderer/components/input/validators/is-path.injectable"; import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable"; import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import { testUsingFakeTime } from "@k8slens/test-utils"; describe("add custom helm repository in preferences", () => { @@ -26,7 +26,7 @@ describe("add custom helm repository in preferences", () => { let showErrorNotificationMock: jest.Mock; let rendered: RenderResult; let execFileMock: AsyncFnMock; - let getActiveHelmRepositoriesMock: AsyncFnMock<() => Promise>>; + let getActiveHelmRepositoriesMock: AsyncFnMock<() => AsyncResult>; beforeEach(async () => { jest.useFakeTimers(); diff --git a/packages/core/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts b/packages/core/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts index 8bdfb4e507..e24e3e09f1 100644 --- a/packages/core/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts +++ b/packages/core/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts @@ -15,7 +15,7 @@ import type { HelmRepo } from "../../common/helm/helm-repo"; import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable"; import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable"; import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; describe("add helm repository from list in preferences", () => { let builder: ApplicationBuilder; @@ -23,7 +23,7 @@ describe("add helm repository from list in preferences", () => { let showErrorNotificationMock: jest.Mock; let rendered: RenderResult; let execFileMock: AsyncFnMock; - let getActiveHelmRepositoriesMock: AsyncFnMock<() => Promise>>; + let getActiveHelmRepositoriesMock: AsyncFnMock<() => AsyncResult>; let callForPublicHelmRepositoriesMock: AsyncFnMock<() => Promise>; beforeEach(async () => { diff --git a/packages/core/src/features/helm-charts/remove-helm-repository-from-list-of-active-repository-in-preferences.test.ts b/packages/core/src/features/helm-charts/remove-helm-repository-from-list-of-active-repository-in-preferences.test.ts index 59743be36d..704dd8366f 100644 --- a/packages/core/src/features/helm-charts/remove-helm-repository-from-list-of-active-repository-in-preferences.test.ts +++ b/packages/core/src/features/helm-charts/remove-helm-repository-from-list-of-active-repository-in-preferences.test.ts @@ -14,12 +14,12 @@ import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectabl import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable"; import type { HelmRepo } from "../../common/helm/helm-repo"; import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; describe("remove helm repository from list of active repositories in preferences", () => { let builder: ApplicationBuilder; let rendered: RenderResult; - let getActiveHelmRepositoriesMock: AsyncFnMock<() => Promise>>; + let getActiveHelmRepositoriesMock: AsyncFnMock<() => AsyncResult>; let execFileMock: AsyncFnMock; beforeEach(async () => { diff --git a/packages/core/src/features/shell-sync/main/compute-shell-environment.injectable.ts b/packages/core/src/features/shell-sync/main/compute-shell-environment.injectable.ts index 88fcd0de84..36aa385d01 100644 --- a/packages/core/src/features/shell-sync/main/compute-shell-environment.injectable.ts +++ b/packages/core/src/features/shell-sync/main/compute-shell-environment.injectable.ts @@ -3,13 +3,13 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { AsyncResult } from "../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import { getInjectable } from "@ogre-tools/injectable"; import isWindowsInjectable from "../../../common/vars/is-windows.injectable"; import computeUnixShellEnvironmentInjectable from "./compute-unix-shell-environment.injectable"; export type EnvironmentVariables = Partial>; -export type ComputeShellEnvironment = (shell: string) => Promise>; +export type ComputeShellEnvironment = (shell: string) => AsyncResult; const computeShellEnvironmentInjectable = getInjectable({ id: "compute-shell-environment", diff --git a/packages/core/src/main/cluster/request-api-resources.injectable.ts b/packages/core/src/main/cluster/request-api-resources.injectable.ts index 5284ba3165..3f4610ef7b 100644 --- a/packages/core/src/main/cluster/request-api-resources.injectable.ts +++ b/packages/core/src/main/cluster/request-api-resources.injectable.ts @@ -10,10 +10,10 @@ import type { Cluster } from "../../common/cluster/cluster"; import { requestApiVersionsInjectionToken } from "./request-api-versions"; import { withConcurrencyLimit } from "@k8slens/utilities"; import requestKubeApiResourcesForInjectable from "./request-kube-api-resources-for.injectable"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import { backoffCaller } from "../../common/utils/backoff-caller"; -export type RequestApiResources = (cluster: Cluster) => Promise>; +export type RequestApiResources = (cluster: Cluster) => AsyncResult; export interface KubeResourceListGroup { group: string; diff --git a/packages/core/src/main/cluster/request-api-versions.ts b/packages/core/src/main/cluster/request-api-versions.ts index be9ec2c21a..aa8023427e 100644 --- a/packages/core/src/main/cluster/request-api-versions.ts +++ b/packages/core/src/main/cluster/request-api-versions.ts @@ -5,14 +5,14 @@ import { getInjectionToken } from "@ogre-tools/injectable"; import type { Cluster } from "../../common/cluster/cluster"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; export interface KubeResourceListGroup { group: string; path: string; } -export type RequestApiVersions = (cluster: Cluster) => Promise>; +export type RequestApiVersions = (cluster: Cluster) => AsyncResult; export const requestApiVersionsInjectionToken = getInjectionToken({ id: "request-api-versions-token", diff --git a/packages/core/src/main/cluster/request-kube-api-resources-for.injectable.ts b/packages/core/src/main/cluster/request-kube-api-resources-for.injectable.ts index 681f4ac013..65e326eed7 100644 --- a/packages/core/src/main/cluster/request-kube-api-resources-for.injectable.ts +++ b/packages/core/src/main/cluster/request-kube-api-resources-for.injectable.ts @@ -6,11 +6,11 @@ import type { V1APIResourceList } from "@kubernetes/client-node"; import { getInjectable } from "@ogre-tools/injectable"; import type { Cluster } from "../../common/cluster/cluster"; import type { KubeApiResource } from "../../common/rbac"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import k8sRequestInjectable from "../k8s-request.injectable"; import type { KubeResourceListGroup } from "./request-api-versions"; -export type RequestKubeApiResources = (grouping: KubeResourceListGroup) => Promise>; +export type RequestKubeApiResources = (grouping: KubeResourceListGroup) => AsyncResult; export type RequestKubeApiResourcesFor = (cluster: Cluster) => RequestKubeApiResources; diff --git a/packages/core/src/main/helm/exec-helm/exec-helm.injectable.ts b/packages/core/src/main/helm/exec-helm/exec-helm.injectable.ts index 034ab43248..5fc610f97f 100644 --- a/packages/core/src/main/helm/exec-helm/exec-helm.injectable.ts +++ b/packages/core/src/main/helm/exec-helm/exec-helm.injectable.ts @@ -5,11 +5,11 @@ import { getInjectable } from "@ogre-tools/injectable"; import type { ExecFileException } from "child_process"; import execFileInjectable from "../../../common/fs/exec-file.injectable"; -import type { AsyncResult } from "../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import helmBinaryPathInjectable from "../helm-binary-path.injectable"; import execHelmEnvInjectable from "./exec-env.injectable"; -export type ExecHelm = (args: string[]) => Promise>; +export type ExecHelm = (args: string[]) => AsyncResult; const execHelmInjectable = getInjectable({ id: "exec-helm", diff --git a/packages/core/src/main/helm/get-helm-env/get-helm-env.injectable.ts b/packages/core/src/main/helm/get-helm-env/get-helm-env.injectable.ts index bb74c53f99..e3a9969ffc 100644 --- a/packages/core/src/main/helm/get-helm-env/get-helm-env.injectable.ts +++ b/packages/core/src/main/helm/get-helm-env/get-helm-env.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import execHelmInjectable from "../exec-helm/exec-helm.injectable"; -import type { AsyncResult } from "../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; export type HelmEnv = Record & { HELM_REPOSITORY_CACHE?: string; @@ -17,7 +17,7 @@ const getHelmEnvInjectable = getInjectable({ instantiate: (di) => { const execHelm = di.inject(execHelmInjectable); - return async (): Promise> => { + return async (): AsyncResult => { const result = await execHelm(["env"]); if (!result.callWasSuccessful) { diff --git a/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts b/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts index b5176b25b9..75115b4c27 100644 --- a/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts +++ b/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import type { AsyncResult } from "../../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import execHelmInjectable from "../../../exec-helm/exec-helm.injectable"; import yaml from "js-yaml"; import type { KubeJsonApiData, KubeJsonApiDataList } from "../../../../../common/k8s-api/kube-json-api"; @@ -18,7 +18,7 @@ const callForHelmManifestInjectable = getInjectable({ name: string, namespace: string, kubeconfigPath: string, - ): Promise> => { + ): AsyncResult<(KubeJsonApiData | KubeJsonApiDataList)[]> => { const result = await execHelm([ "get", "manifest", diff --git a/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable.ts b/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable.ts index 37003964fe..031c95cdb6 100644 --- a/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable.ts +++ b/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import type { AsyncResult } from "../../../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import nonPromiseExecFileInjectable from "./non-promise-exec-file.injectable"; import { isNumber } from "@k8slens/utilities"; import assert from "assert"; @@ -13,7 +13,7 @@ export type ExecFileWithInput = (options: { filePath: string; commandArguments: string[]; input: string; -}) => Promise>; +}) => AsyncResult; const execFileWithInputInjectable = getInjectable({ id: "exec-file-with-input", diff --git a/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.test.ts b/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.test.ts index 2c1ed93698..bd3872b2da 100644 --- a/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.test.ts +++ b/packages/core/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.test.ts @@ -5,7 +5,7 @@ import { getDiForUnitTesting } from "../../../../../getDiForUnitTesting"; import type { ExecFileWithInput } from "./exec-file-with-input.injectable"; import execFileWithInputInjectable from "./exec-file-with-input.injectable"; -import type { AsyncResult } from "../../../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import nonPromiseExecFileInjectable from "./non-promise-exec-file.injectable"; import { getPromiseStatus } from "@k8slens/test-utils"; import EventEmitter from "events"; @@ -56,7 +56,7 @@ describe("exec-file-with-input", () => { }); describe("when called", () => { - let actualPromise: Promise>; + let actualPromise: AsyncResult; beforeEach(() => { actualPromise = execFileWithInput({ diff --git a/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.injectable.ts b/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.injectable.ts index ce5c60d6b3..cef66508be 100644 --- a/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.injectable.ts +++ b/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.injectable.ts @@ -5,13 +5,13 @@ import { getInjectable } from "@ogre-tools/injectable"; import callForHelmManifestInjectable from "./call-for-helm-manifest/call-for-helm-manifest.injectable"; import type { KubeJsonApiData, KubeJsonApiDataList } from "../../../../common/k8s-api/kube-json-api"; -import type { AsyncResult } from "../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; export type GetHelmReleaseResources = ( name: string, namespace: string, kubeconfigPath: string, -) => Promise>; +) => AsyncResult; const getHelmReleaseResourcesInjectable = getInjectable({ id: "get-helm-release-resources", diff --git a/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.test.ts b/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.test.ts index b10bb650f1..2bb28d45b1 100644 --- a/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.test.ts +++ b/packages/core/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.test.ts @@ -12,7 +12,7 @@ import type { AsyncFnMock } from "@async-fn/jest"; import asyncFn from "@async-fn/jest"; import type { ExecFileWithInput } from "./call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable"; import execFileWithInputInjectable from "./call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable"; -import type { AsyncResult } from "../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import type { KubeJsonApiData } from "../../../../common/k8s-api/kube-json-api"; describe("get helm release resources", () => { @@ -37,7 +37,7 @@ describe("get helm release resources", () => { }); describe("when called", () => { - let actualPromise: Promise>; + let actualPromise: AsyncResult; beforeEach(() => { actualPromise = getHelmReleaseResources( diff --git a/packages/core/src/main/helm/repositories/remove-helm-repository/remove-helm-repository.injectable.ts b/packages/core/src/main/helm/repositories/remove-helm-repository/remove-helm-repository.injectable.ts index a662603a96..a7811c006d 100644 --- a/packages/core/src/main/helm/repositories/remove-helm-repository/remove-helm-repository.injectable.ts +++ b/packages/core/src/main/helm/repositories/remove-helm-repository/remove-helm-repository.injectable.ts @@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import execHelmInjectable from "../../exec-helm/exec-helm.injectable"; import type { HelmRepo } from "../../../../common/helm/helm-repo"; import loggerInjectable from "../../../../common/logger.injectable"; -import type { AsyncResult } from "../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; const removeHelmRepositoryInjectable = getInjectable({ id: "remove-helm-repository", @@ -15,7 +15,7 @@ const removeHelmRepositoryInjectable = getInjectable({ const execHelm = di.inject(execHelmInjectable); const logger = di.inject(loggerInjectable); - return async (repo: HelmRepo): Promise> => { + return async (repo: HelmRepo): AsyncResult => { logger.info(`[HELM]: removing repo ${repo.name} (${repo.url})`); const result = await execHelm([ diff --git a/packages/core/src/main/resource-applier/resource-applier.ts b/packages/core/src/main/resource-applier/resource-applier.ts index a604781fce..d377a2f73c 100644 --- a/packages/core/src/main/resource-applier/resource-applier.ts +++ b/packages/core/src/main/resource-applier/resource-applier.ts @@ -14,7 +14,7 @@ import type { WriteFile } from "../../common/fs/write-file.injectable"; import type { RemovePath } from "../../common/fs/remove.injectable"; import type { ExecFile } from "../../common/fs/exec-file.injectable"; import type { JoinPaths } from "../../common/path/join-paths.injectable"; -import type { AsyncResult } from "../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; export interface ResourceApplierDependencies { emitAppEvent: EmitAppEvent; @@ -67,13 +67,13 @@ export class ResourceApplier { throw result.error.stderr || result.error.message; } - async create(resource: string): Promise> { + async create(resource: string): AsyncResult { this.dependencies.emitAppEvent({ name: "resource", action: "apply" }); return this.kubectlApply(this.sanitizeObject(resource)); } - protected async kubectlApply(content: string): Promise> { + protected async kubectlApply(content: string): AsyncResult { const kubectl = await this.cluster.ensureKubectl(); const kubectlPath = await kubectl.getPath(); const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath(); @@ -112,15 +112,15 @@ export class ResourceApplier { } } - public async kubectlApplyAll(resources: string[], extraArgs = ["-o", "json"]): Promise> { + public async kubectlApplyAll(resources: string[], extraArgs = ["-o", "json"]): AsyncResult { return this.kubectlCmdAll("apply", resources, extraArgs); } - public async kubectlDeleteAll(resources: string[], extraArgs?: string[]): Promise> { + public async kubectlDeleteAll(resources: string[], extraArgs?: string[]): AsyncResult { return this.kubectlCmdAll("delete", resources, extraArgs); } - protected async kubectlCmdAll(subCmd: string, resources: string[], parentArgs: string[] = []): Promise> { + protected async kubectlCmdAll(subCmd: string, resources: string[], parentArgs: string[] = []): AsyncResult { const kubectl = await this.cluster.ensureKubectl(); const kubectlPath = await kubectl.getPath(); const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath(); diff --git a/packages/core/src/renderer/components/+catalog/catalog.tsx b/packages/core/src/renderer/components/+catalog/catalog.tsx index 48d268bbae..541577e573 100644 --- a/packages/core/src/renderer/components/+catalog/catalog.tsx +++ b/packages/core/src/renderer/components/+catalog/catalog.tsx @@ -17,7 +17,6 @@ import type { CatalogCategory, CatalogCategoryRegistry, CatalogEntity } from ".. import { CatalogAddButton } from "./catalog-add-button"; import type { ShowNotification } from "../notifications"; import { MainLayout } from "../layout/main-layout"; -import type { StorageLayer } from "@k8slens/utilities"; import { prevDefault } from "@k8slens/utilities"; import { CatalogEntityDetails } from "./entity-details/view"; import { CatalogMenu } from "./catalog-menu"; @@ -51,6 +50,7 @@ import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.inj import type { Logger } from "../../../common/logger"; import loggerInjectable from "../../../common/logger.injectable"; import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable"; +import type { StorageLayer } from "../../utils/storage-helper"; interface Dependencies { catalogPreviousActiveTabStorage: StorageLayer; diff --git a/packages/core/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.ts b/packages/core/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.ts index aa5a2e9121..43125a87b0 100644 --- a/packages/core/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.ts +++ b/packages/core/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.ts @@ -7,7 +7,7 @@ import type { HelmReleaseDto } from "../../../../../common/k8s-api/endpoints/hel import requestHelmReleasesInjectable from "../../../../../common/k8s-api/endpoints/helm-releases.api/request-releases.injectable"; import type { HelmReleaseDetails } from "../../../../../common/k8s-api/endpoints/helm-releases.api/request-details.injectable"; import requestHelmReleaseDetailsInjectable from "../../../../../common/k8s-api/endpoints/helm-releases.api/request-details.injectable"; -import type { AsyncResult } from "../../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; export interface DetailedHelmRelease { release: HelmReleaseDto; @@ -17,7 +17,7 @@ export interface DetailedHelmRelease { export type RequestDetailedHelmRelease = ( name: string, namespace: string -) => Promise>; +) => AsyncResult; const requestDetailedHelmReleaseInjectable = getInjectable({ id: "request-detailed-helm-release", diff --git a/packages/core/src/renderer/components/+nodes/store.ts b/packages/core/src/renderer/components/+nodes/store.ts index 5c8e8f4f58..6cfedd7dfc 100644 --- a/packages/core/src/renderer/components/+nodes/store.ts +++ b/packages/core/src/renderer/components/+nodes/store.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 autoBind from "auto-bind"; import { sum } from "lodash"; import { computed, makeObservable } from "mobx"; import type { Node, NodeApi } from "../../../common/k8s-api/endpoints"; import type { KubeObjectStoreDependencies, KubeObjectStoreOptions } from "../../../common/k8s-api/kube-object.store"; import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store"; -import { autoBind } from "@k8slens/utilities"; export class NodeStore extends KubeObjectStore { constructor(dependencies: KubeObjectStoreDependencies, api: NodeApi, opts?: KubeObjectStoreOptions) { diff --git a/packages/core/src/renderer/components/cluster-manager/cluster-manager.tsx b/packages/core/src/renderer/components/cluster-manager/cluster-manager.tsx index 7ec334ff18..68dea9a2d3 100644 --- a/packages/core/src/renderer/components/cluster-manager/cluster-manager.tsx +++ b/packages/core/src/renderer/components/cluster-manager/cluster-manager.tsx @@ -18,10 +18,10 @@ import type { IComputedValue } from "mobx"; import currentRouteComponentInjectable from "../../routes/current-route-component.injectable"; import welcomeRouteInjectable from "../../../common/front-end-routing/routes/welcome/welcome-route.injectable"; import { buildURL } from "@k8slens/utilities"; -import type { StorageLayer } from "@k8slens/utilities"; import type { WatchForGeneralEntityNavigation } from "../../api/helpers/watch-for-general-entity-navigation.injectable"; import watchForGeneralEntityNavigationInjectable from "../../api/helpers/watch-for-general-entity-navigation.injectable"; import currentPathInjectable from "../../routes/current-path.injectable"; +import type { StorageLayer } from "../../utils/storage-helper"; interface Dependencies { catalogPreviousActiveTabStorage: StorageLayer; diff --git a/packages/core/src/renderer/components/dock/dock/store.ts b/packages/core/src/renderer/components/dock/dock/store.ts index 5f68865dba..b71f0e1093 100644 --- a/packages/core/src/renderer/components/dock/dock/store.ts +++ b/packages/core/src/renderer/components/dock/dock/store.ts @@ -5,9 +5,9 @@ import * as uuid from "uuid"; import { action, comparer, computed, makeObservable, observable, reaction, runInAction } from "mobx"; -import type { StorageLayer } from "@k8slens/utilities"; -import { autoBind } from "@k8slens/utilities"; import throttle from "lodash/throttle"; +import type { StorageLayer } from "../../../utils/storage-helper"; +import autoBind from "auto-bind"; export type TabId = string; diff --git a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-patch-resource/call-for-patch-resource.injectable.ts b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-patch-resource/call-for-patch-resource.injectable.ts index 097ef1ccf3..ddee1e6810 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-patch-resource/call-for-patch-resource.injectable.ts +++ b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-patch-resource/call-for-patch-resource.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import type { AsyncResult } from "../../../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import apiManagerInjectable from "../../../../../../common/k8s-api/api-manager/manager.injectable"; import type { JsonPatch } from "../../../../../../common/k8s-api/kube-object.store"; import type { KubeObject } from "../../../../../../common/k8s-api/kube-object"; @@ -13,7 +13,7 @@ import { getErrorMessage } from "../../../../../../common/utils/get-error-messag export type CallForPatchResource = ( item: KubeObject, patch: JsonPatch -) => Promise>; +) => AsyncResult<{ name: string; kind: string }>; const callForPatchResourceInjectable = getInjectable({ id: "call-for-patch-resource", diff --git a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable.ts b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable.ts index 43a3789167..af9fd15a26 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable.ts +++ b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable.ts @@ -5,14 +5,14 @@ import { getInjectable } from "@ogre-tools/injectable"; import type { KubeObject } from "../../../../../../common/k8s-api/kube-object"; import { parseKubeApi } from "../../../../../../common/k8s-api/kube-api-parse"; -import type { AsyncResult } from "../../../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import { getErrorMessage } from "../../../../../../common/utils/get-error-message"; import apiManagerInjectable from "../../../../../../common/k8s-api/api-manager/manager.injectable"; import { waitUntilDefined } from "@k8slens/utilities"; export type CallForResource = ( selfLink: string -) => Promise>; +) => AsyncResult; const callForResourceInjectable = getInjectable({ id: "call-for-resource", diff --git a/packages/core/src/renderer/components/dock/upgrade-chart/upgrade-chart-model.injectable.ts b/packages/core/src/renderer/components/dock/upgrade-chart/upgrade-chart-model.injectable.ts index befd7644f2..4683410f8b 100644 --- a/packages/core/src/renderer/components/dock/upgrade-chart/upgrade-chart-model.injectable.ts +++ b/packages/core/src/renderer/components/dock/upgrade-chart/upgrade-chart-model.injectable.ts @@ -13,7 +13,7 @@ import releasesInjectable from "../../+helm-releases/releases.injectable"; import updateReleaseInjectable from "../../+helm-releases/update-release/update-release.injectable"; import type { HelmRelease } from "../../../../common/k8s-api/endpoints/helm-releases.api"; import requestHelmReleaseConfigurationInjectable from "../../../../common/k8s-api/endpoints/helm-releases.api/request-configuration.injectable"; -import type { AsyncResult } from "../../../../common/utils/async-result"; +import type { AsyncResult } from "@k8slens/utilities"; import { waitUntilDefined } from "@k8slens/utilities"; import type { SelectOption } from "../../select"; import type { DockTab } from "../dock/store"; @@ -22,7 +22,7 @@ import upgradeChartTabDataInjectable from "./tab-data.injectable"; export interface UpgradeChartModel { readonly release: HelmRelease; readonly versionOptions: IComputedValue[]>; - readonly configration: { + readonly configuration: { readonly value: IComputedValue; set: (value: string) => void; readonly error: IComputedValue; @@ -32,7 +32,7 @@ export interface UpgradeChartModel { readonly value: IComputedValue; set: (value: SingleValue>) => void; }; - submit: () => Promise>; + submit: () => AsyncResult; } const upgradeChartModelInjectable = getInjectable({ @@ -69,7 +69,7 @@ const upgradeChartModelInjectable = getInjectable({ const configrationValue = observable.box(); const configrationEditError = observable.box(); - const configration: UpgradeChartModel["configration"] = { + const configration: UpgradeChartModel["configuration"] = { value: computed(() => configrationValue.get() ?? storedConfiguration.value.get()), set: action((value) => { configrationValue.set(value); @@ -97,7 +97,7 @@ const upgradeChartModelInjectable = getInjectable({ return { release, versionOptions, - configration, + configuration: configration, version, submit: async () => { const selectedVersion = version.value.get(); diff --git a/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx b/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx index a28d5fb451..16e6b641c4 100644 --- a/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx +++ b/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx @@ -61,7 +61,7 @@ export class NonInjectedUpgradeChart extends React.Component ); diff --git a/packages/core/src/renderer/components/drawer/drawer.tsx b/packages/core/src/renderer/components/drawer/drawer.tsx index 56d80c9a77..5959c0c098 100644 --- a/packages/core/src/renderer/components/drawer/drawer.tsx +++ b/packages/core/src/renderer/components/drawer/drawer.tsx @@ -8,7 +8,7 @@ import "./drawer.scss"; import React from "react"; import { clipboard } from "electron"; import { createPortal } from "react-dom"; -import type { SingleOrMany, StorageLayer } from "@k8slens/utilities"; +import type { SingleOrMany } from "@k8slens/utilities"; import { cssNames, noop } from "@k8slens/utilities"; import { Icon } from "../icon"; import type { AnimateName } from "../animate"; @@ -18,6 +18,7 @@ import drawerStorageInjectable, { defaultDrawerWidth } from "./drawer-storage/dr import { withInjectables } from "@ogre-tools/injectable-react"; import historyInjectable from "../../navigation/history.injectable"; import type { History } from "history"; +import type { StorageLayer } from "../../utils/storage-helper"; export type DrawerPosition = "top" | "left" | "right" | "bottom"; diff --git a/packages/core/src/renderer/components/item-object-list/page-filters/store.ts b/packages/core/src/renderer/components/item-object-list/page-filters/store.ts index ca982bc92a..4988f10a12 100644 --- a/packages/core/src/renderer/components/item-object-list/page-filters/store.ts +++ b/packages/core/src/renderer/components/item-object-list/page-filters/store.ts @@ -3,9 +3,9 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ +import autoBind from "auto-bind"; import { computed, observable, reaction, makeObservable, action } from "mobx"; import type { PageParam } from "../../../navigation/page-param"; -import { autoBind } from "@k8slens/utilities"; export enum FilterType { SEARCH = "search", diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-items.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-items.injectable.ts index 4d312eb30b..77223c06c1 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-items.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-items.injectable.ts @@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx"; import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-item-injection-token"; -import { byValue } from "../../../../common/utils/sort-function"; +import { byValue } from "@k8slens/utilities"; const kubeObjectDetailItemsInjectable = getInjectable({ id: "kube-object-detail-items", diff --git a/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx b/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx index 476edf4154..69a6cdcbd2 100644 --- a/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx +++ b/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx @@ -7,7 +7,7 @@ import styles from "./kubeconfig-dialog.module.scss"; import React from "react"; import type { IObservableValue } from "mobx"; import { observer } from "mobx-react"; -import { cssNames, saveFileDialog } from "@k8slens/utilities"; +import { cssNames } from "@k8slens/utilities"; import { Button } from "../button"; import type { DialogProps } from "../dialog"; import { Dialog } from "../dialog"; @@ -19,6 +19,7 @@ import { clipboard } from "electron"; import { withInjectables } from "@ogre-tools/injectable-react"; import showSuccessNotificationInjectable from "../notifications/show-success-notification.injectable"; import kubeconfigDialogStateInjectable from "./state.injectable"; +import { saveFileDialog } from "../../utils/saveFile"; export interface KubeconfigDialogData { title?: React.ReactNode; diff --git a/packages/core/src/renderer/components/layout/main-layout.tsx b/packages/core/src/renderer/components/layout/main-layout.tsx index ab0a2a4c09..a078ac7b74 100755 --- a/packages/core/src/renderer/components/layout/main-layout.tsx +++ b/packages/core/src/renderer/components/layout/main-layout.tsx @@ -7,13 +7,13 @@ import styles from "./main-layout.module.scss"; import React from "react"; import { observer } from "mobx-react"; -import type { StorageLayer } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { ErrorBoundary } from "../error-boundary"; import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "../resizing-anchor"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable"; import sidebarStorageInjectable, { defaultSidebarWidth } from "./sidebar-storage/sidebar-storage.injectable"; +import type { StorageLayer } from "../../utils/storage-helper"; export interface MainLayoutProps { sidebar: React.ReactNode; diff --git a/packages/core/src/renderer/components/layout/sidebar-item.tsx b/packages/core/src/renderer/components/layout/sidebar-item.tsx index 53ff7f8d53..da1ee8b670 100644 --- a/packages/core/src/renderer/components/layout/sidebar-item.tsx +++ b/packages/core/src/renderer/components/layout/sidebar-item.tsx @@ -7,7 +7,6 @@ import styles from "./sidebar-items.module.scss"; import React from "react"; import { computed, makeObservable } from "mobx"; -import type { StorageLayer } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { observer } from "mobx-react"; import { NavLink } from "react-router-dom"; @@ -16,6 +15,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable"; import sidebarStorageInjectable from "./sidebar-storage/sidebar-storage.injectable"; import type { HierarchicalSidebarItem } from "./sidebar-items.injectable"; +import type { StorageLayer } from "../../utils/storage-helper"; interface Dependencies { sidebarStorage: StorageLayer; diff --git a/packages/core/src/renderer/components/table/table-model/table-model.ts b/packages/core/src/renderer/components/table/table-model/table-model.ts index 2e002be0e4..cc95c0b742 100644 --- a/packages/core/src/renderer/components/table/table-model/table-model.ts +++ b/packages/core/src/renderer/components/table/table-model/table-model.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 { StorageLayer } from "@k8slens/utilities"; +import type { StorageLayer } from "../../../utils/storage-helper"; import type { TableSortParams } from "../table"; export interface TableStorageModel { diff --git a/packages/core/src/renderer/components/tooltip/withTooltip.tsx b/packages/core/src/renderer/components/tooltip/withTooltip.tsx index 821e8bbb2f..533fbecf44 100644 --- a/packages/core/src/renderer/components/tooltip/withTooltip.tsx +++ b/packages/core/src/renderer/components/tooltip/withTooltip.tsx @@ -9,7 +9,7 @@ import type { ReactNode } from "react"; import React, { useState } from "react"; import type { TooltipProps } from "./tooltip"; import { Tooltip } from "./tooltip"; -import { isReactNode } from "../../utils/isReactNode"; +import { isReactNode } from "@k8slens/utilities"; import uniqueId from "lodash/uniqueId"; import type { SingleOrMany } from "@k8slens/utilities"; diff --git a/packages/core/src/renderer/ipc/index.ts b/packages/core/src/renderer/ipc/index.ts index 84072e0f4c..f8ebfc2de0 100644 --- a/packages/core/src/renderer/ipc/index.ts +++ b/packages/core/src/renderer/ipc/index.ts @@ -9,10 +9,10 @@ import { windowActionHandleChannel, windowLocationChangedChannel, windowOpenAppM import { extensionDiscoveryStateChannel, extensionLoaderFromMainChannel } from "../../common/ipc/extension-handling"; import type { InstalledExtension } from "../../extensions/extension-discovery/extension-discovery"; import type { LensExtensionId } from "../../extensions/lens-extension"; -import { toJS } from "@k8slens/utilities"; import type { Location } from "history"; import { getLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; import ipcRendererInjectable from "../utils/channel/ipc-renderer.injectable"; +import { toJS } from "../../common/utils"; function requestMain(channel: string, ...args: any[]) { const di = getLegacyGlobalDiForExtensionApi(); diff --git a/packages/core/src/renderer/port-forward/port-forward-item.ts b/packages/core/src/renderer/port-forward/port-forward-item.ts index 65cc07aa0f..0ea56bc4cd 100644 --- a/packages/core/src/renderer/port-forward/port-forward-item.ts +++ b/packages/core/src/renderer/port-forward/port-forward-item.ts @@ -4,8 +4,8 @@ */ +import autoBind from "auto-bind"; import type { ItemObject } from "../../common/item.store"; -import { autoBind } from "@k8slens/utilities"; export type ForwardedPortStatus = "Active" | "Disabled"; export interface ForwardedPort {