From 9276cdff76965aefbd75738b6c81cc0ff8204f41 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 14 Sep 2022 12:45:42 -0400 Subject: [PATCH] Convert DirectoryForKubectlBinaries to LazyInitializableState Signed-off-by: Sebastian Malton --- .../directory-for-kubectl-binaries.injectable.ts | 7 +++---- .../kubectl-path-to-binary/kubectl-path-to-binary.tsx | 7 ++++--- src/main/kubectl/create-kubectl.injectable.ts | 2 +- src/main/kubectl/kubectl.ts | 7 ++++--- 4 files changed, 12 insertions(+), 11 deletions(-) rename src/common/app-paths/{directory-for-kubectl-binaries => }/directory-for-kubectl-binaries.injectable.ts (69%) diff --git a/src/common/app-paths/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts b/src/common/app-paths/directory-for-kubectl-binaries.injectable.ts similarity index 69% rename from src/common/app-paths/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts rename to src/common/app-paths/directory-for-kubectl-binaries.injectable.ts index 3a28184266..178a79ad98 100644 --- a/src/common/app-paths/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable.ts +++ b/src/common/app-paths/directory-for-kubectl-binaries.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 directoryForBinariesInjectable from "../directory-for-binaries.injectable"; -import joinPathsInjectable from "../../path/join-paths.injectable"; -import { createLazyInitializableState } from "../../initializable-state/create-lazy"; +import directoryForBinariesInjectable from "./directory-for-binaries.injectable"; +import { createLazyInitializableState } from "../initializable-state/create-lazy"; +import joinPathsInjectable from "../path/join-paths.injectable"; const directoryForKubectlBinariesInjectable = createLazyInitializableState({ id: "directory-for-kubectl-binaries", - init: (di) => { const joinPaths = di.inject(joinPathsInjectable); const directoryForBinaries = di.inject(directoryForBinariesInjectable); diff --git a/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-path-to-binary/kubectl-path-to-binary.tsx b/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-path-to-binary/kubectl-path-to-binary.tsx index ec5482cb88..da70a65cc9 100644 --- a/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-path-to-binary/kubectl-path-to-binary.tsx +++ b/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-path-to-binary/kubectl-path-to-binary.tsx @@ -9,11 +9,12 @@ import type { UserStore } from "../../../../../../../common/user-store"; import userStoreInjectable from "../../../../../../../common/user-store/user-store.injectable"; import { observer } from "mobx-react"; import { Input, InputValidators } from "../../../../../../../renderer/components/input"; -import directoryForKubectlBinariesInjectable from "../../../../../../../common/app-paths/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable"; +import directoryForKubectlBinariesInjectable from "../../../../../../../common/app-paths/directory-for-kubectl-binaries.injectable"; +import type { LazyInitializableState } from "../../../../../../../common/initializable-state/create-lazy"; interface Dependencies { userStore: UserStore; - defaultPathForKubectlBinaries: string; + defaultPathForKubectlBinaries: LazyInitializableState; } const NonInjectedKubectlPathToBinary = observer( @@ -30,7 +31,7 @@ const NonInjectedKubectlPathToBinary = observer( ; readonly normalizedDownloadPlatform: "darwin" | "linux" | "windows"; readonly normalizedDownloadArch: "amd64" | "arm64" | "386"; readonly kubectlBinaryName: string; @@ -88,12 +89,12 @@ export class Kubectl { return this.dependencies.userStore.kubectlBinariesPath || this.getBundledPath(); } - protected getDownloadDir() { + protected getDownloadDir(): string { if (this.dependencies.userStore.downloadBinariesPath) { return this.dependencies.joinPaths(this.dependencies.userStore.downloadBinariesPath, "kubectl"); } - return this.dependencies.directoryForKubectlBinaries; + return this.dependencies.directoryForKubectlBinaries.get(); } public getPath = async (bundled = false): Promise => {