mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fixup uses of AsyncResult and autoBind
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
0775b6a42f
commit
ff49246c60
@ -72,7 +72,7 @@ export class ResourceStack {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async applyResources(resources: string[], extraArgs: string[] = []): Promise<AsyncResult<string, string>> {
|
protected async applyResources(resources: string[], extraArgs: string[] = []): AsyncResult<string, string> {
|
||||||
const kubectlArgs = [...extraArgs, ...this.getAdditionalArgs(extraArgs)];
|
const kubectlArgs = [...extraArgs, ...this.getAdditionalArgs(extraArgs)];
|
||||||
|
|
||||||
return this.dependencies.kubectlApplyAll({
|
return this.dependencies.kubectlApplyAll({
|
||||||
@ -82,7 +82,7 @@ export class ResourceStack {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async deleteResources(resources: string[], extraArgs: string[] = []): Promise<AsyncResult<string, string>> {
|
protected async deleteResources(resources: string[], extraArgs: string[] = []): AsyncResult<string, string> {
|
||||||
const kubectlArgs = [...extraArgs, ...this.getAdditionalArgs(extraArgs)];
|
const kubectlArgs = [...extraArgs, ...this.getAdditionalArgs(extraArgs)];
|
||||||
|
|
||||||
return this.dependencies.kubectlDeleteAll({
|
return this.dependencies.kubectlDeleteAll({
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import execFileInjectable from "../../../common/fs/exec-file.injectable";
|
import execFileInjectable from "../../../common/fs/exec-file.injectable";
|
||||||
import loggerInjectable from "../../../common/logger.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";
|
import { requestSystemCAsInjectionToken } from "../common/request-system-cas-token";
|
||||||
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet#other_assertions
|
// 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 execFile = di.inject(execFileInjectable);
|
||||||
const logger = di.inject(loggerInjectable);
|
const logger = di.inject(loggerInjectable);
|
||||||
|
|
||||||
const execSecurity = async (...args: string[]): Promise<AsyncResult<string[]>> => {
|
const execSecurity = async (...args: string[]): AsyncResult<string[]> => {
|
||||||
const result = await execFile("/usr/bin/security", args);
|
const result = await execFile("/usr/bin/security", args);
|
||||||
|
|
||||||
if (!result.callWasSuccessful) {
|
if (!result.callWasSuccessful) {
|
||||||
|
|||||||
@ -17,7 +17,7 @@ import requestPublicHelmRepositoriesInjectable from "./child-features/preference
|
|||||||
import isPathInjectable from "../../renderer/components/input/validators/is-path.injectable";
|
import isPathInjectable from "../../renderer/components/input/validators/is-path.injectable";
|
||||||
import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
|
import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
|
||||||
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-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";
|
import { testUsingFakeTime } from "@k8slens/test-utils";
|
||||||
|
|
||||||
describe("add custom helm repository in preferences", () => {
|
describe("add custom helm repository in preferences", () => {
|
||||||
@ -26,7 +26,7 @@ describe("add custom helm repository in preferences", () => {
|
|||||||
let showErrorNotificationMock: jest.Mock;
|
let showErrorNotificationMock: jest.Mock;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let execFileMock: AsyncFnMock<ExecFile>;
|
let execFileMock: AsyncFnMock<ExecFile>;
|
||||||
let getActiveHelmRepositoriesMock: AsyncFnMock<() => Promise<AsyncResult<HelmRepo[]>>>;
|
let getActiveHelmRepositoriesMock: AsyncFnMock<() => AsyncResult<HelmRepo[]>>;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
jest.useFakeTimers();
|
jest.useFakeTimers();
|
||||||
|
|||||||
@ -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 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 showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
|
||||||
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-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", () => {
|
describe("add helm repository from list in preferences", () => {
|
||||||
let builder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
@ -23,7 +23,7 @@ describe("add helm repository from list in preferences", () => {
|
|||||||
let showErrorNotificationMock: jest.Mock;
|
let showErrorNotificationMock: jest.Mock;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let execFileMock: AsyncFnMock<ExecFile>;
|
let execFileMock: AsyncFnMock<ExecFile>;
|
||||||
let getActiveHelmRepositoriesMock: AsyncFnMock<() => Promise<AsyncResult<HelmRepo[]>>>;
|
let getActiveHelmRepositoriesMock: AsyncFnMock<() => AsyncResult<HelmRepo[]>>;
|
||||||
let callForPublicHelmRepositoriesMock: AsyncFnMock<() => Promise<HelmRepo[]>>;
|
let callForPublicHelmRepositoriesMock: AsyncFnMock<() => Promise<HelmRepo[]>>;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
|||||||
@ -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 getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
|
||||||
import type { HelmRepo } from "../../common/helm/helm-repo";
|
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 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", () => {
|
describe("remove helm repository from list of active repositories in preferences", () => {
|
||||||
let builder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let getActiveHelmRepositoriesMock: AsyncFnMock<() => Promise<AsyncResult<HelmRepo[]>>>;
|
let getActiveHelmRepositoriesMock: AsyncFnMock<() => AsyncResult<HelmRepo[]>>;
|
||||||
let execFileMock: AsyncFnMock<ExecFile>;
|
let execFileMock: AsyncFnMock<ExecFile>;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
|||||||
@ -3,13 +3,13 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* 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 { getInjectable } from "@ogre-tools/injectable";
|
||||||
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
|
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
|
||||||
import computeUnixShellEnvironmentInjectable from "./compute-unix-shell-environment.injectable";
|
import computeUnixShellEnvironmentInjectable from "./compute-unix-shell-environment.injectable";
|
||||||
|
|
||||||
export type EnvironmentVariables = Partial<Record<string, string>>;
|
export type EnvironmentVariables = Partial<Record<string, string>>;
|
||||||
export type ComputeShellEnvironment = (shell: string) => Promise<AsyncResult<EnvironmentVariables | undefined, string>>;
|
export type ComputeShellEnvironment = (shell: string) => AsyncResult<EnvironmentVariables | undefined, string>;
|
||||||
|
|
||||||
const computeShellEnvironmentInjectable = getInjectable({
|
const computeShellEnvironmentInjectable = getInjectable({
|
||||||
id: "compute-shell-environment",
|
id: "compute-shell-environment",
|
||||||
|
|||||||
@ -10,10 +10,10 @@ import type { Cluster } from "../../common/cluster/cluster";
|
|||||||
import { requestApiVersionsInjectionToken } from "./request-api-versions";
|
import { requestApiVersionsInjectionToken } from "./request-api-versions";
|
||||||
import { withConcurrencyLimit } from "@k8slens/utilities";
|
import { withConcurrencyLimit } from "@k8slens/utilities";
|
||||||
import requestKubeApiResourcesForInjectable from "./request-kube-api-resources-for.injectable";
|
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";
|
import { backoffCaller } from "../../common/utils/backoff-caller";
|
||||||
|
|
||||||
export type RequestApiResources = (cluster: Cluster) => Promise<AsyncResult<KubeApiResource[], Error>>;
|
export type RequestApiResources = (cluster: Cluster) => AsyncResult<KubeApiResource[], Error>;
|
||||||
|
|
||||||
export interface KubeResourceListGroup {
|
export interface KubeResourceListGroup {
|
||||||
group: string;
|
group: string;
|
||||||
|
|||||||
@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
import type { Cluster } from "../../common/cluster/cluster";
|
import type { Cluster } from "../../common/cluster/cluster";
|
||||||
import type { AsyncResult } from "../../common/utils/async-result";
|
import type { AsyncResult } from "@k8slens/utilities";
|
||||||
|
|
||||||
export interface KubeResourceListGroup {
|
export interface KubeResourceListGroup {
|
||||||
group: string;
|
group: string;
|
||||||
path: string;
|
path: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type RequestApiVersions = (cluster: Cluster) => Promise<AsyncResult<KubeResourceListGroup[], Error>>;
|
export type RequestApiVersions = (cluster: Cluster) => AsyncResult<KubeResourceListGroup[], Error>;
|
||||||
|
|
||||||
export const requestApiVersionsInjectionToken = getInjectionToken<RequestApiVersions>({
|
export const requestApiVersionsInjectionToken = getInjectionToken<RequestApiVersions>({
|
||||||
id: "request-api-versions-token",
|
id: "request-api-versions-token",
|
||||||
|
|||||||
@ -6,11 +6,11 @@ import type { V1APIResourceList } from "@kubernetes/client-node";
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import type { Cluster } from "../../common/cluster/cluster";
|
import type { Cluster } from "../../common/cluster/cluster";
|
||||||
import type { KubeApiResource } from "../../common/rbac";
|
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 k8sRequestInjectable from "../k8s-request.injectable";
|
||||||
import type { KubeResourceListGroup } from "./request-api-versions";
|
import type { KubeResourceListGroup } from "./request-api-versions";
|
||||||
|
|
||||||
export type RequestKubeApiResources = (grouping: KubeResourceListGroup) => Promise<AsyncResult<KubeApiResource[], Error>>;
|
export type RequestKubeApiResources = (grouping: KubeResourceListGroup) => AsyncResult<KubeApiResource[], Error>;
|
||||||
|
|
||||||
export type RequestKubeApiResourcesFor = (cluster: Cluster) => RequestKubeApiResources;
|
export type RequestKubeApiResourcesFor = (cluster: Cluster) => RequestKubeApiResources;
|
||||||
|
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import type { ExecFileException } from "child_process";
|
import type { ExecFileException } from "child_process";
|
||||||
import execFileInjectable from "../../../common/fs/exec-file.injectable";
|
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 helmBinaryPathInjectable from "../helm-binary-path.injectable";
|
||||||
import execHelmEnvInjectable from "./exec-env.injectable";
|
import execHelmEnvInjectable from "./exec-env.injectable";
|
||||||
|
|
||||||
export type ExecHelm = (args: string[]) => Promise<AsyncResult<string, ExecFileException & { stderr: string }>>;
|
export type ExecHelm = (args: string[]) => AsyncResult<string, ExecFileException & { stderr: string }>;
|
||||||
|
|
||||||
const execHelmInjectable = getInjectable({
|
const execHelmInjectable = getInjectable({
|
||||||
id: "exec-helm",
|
id: "exec-helm",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import execHelmInjectable from "../exec-helm/exec-helm.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<string, string> & {
|
export type HelmEnv = Record<string, string> & {
|
||||||
HELM_REPOSITORY_CACHE?: string;
|
HELM_REPOSITORY_CACHE?: string;
|
||||||
@ -17,7 +17,7 @@ const getHelmEnvInjectable = getInjectable({
|
|||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const execHelm = di.inject(execHelmInjectable);
|
const execHelm = di.inject(execHelmInjectable);
|
||||||
|
|
||||||
return async (): Promise<AsyncResult<HelmEnv>> => {
|
return async (): AsyncResult<HelmEnv> => {
|
||||||
const result = await execHelm(["env"]);
|
const result = await execHelm(["env"]);
|
||||||
|
|
||||||
if (!result.callWasSuccessful) {
|
if (!result.callWasSuccessful) {
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
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 execHelmInjectable from "../../../exec-helm/exec-helm.injectable";
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
import type { KubeJsonApiData, KubeJsonApiDataList } from "../../../../../common/k8s-api/kube-json-api";
|
import type { KubeJsonApiData, KubeJsonApiDataList } from "../../../../../common/k8s-api/kube-json-api";
|
||||||
@ -18,7 +18,7 @@ const callForHelmManifestInjectable = getInjectable({
|
|||||||
name: string,
|
name: string,
|
||||||
namespace: string,
|
namespace: string,
|
||||||
kubeconfigPath: string,
|
kubeconfigPath: string,
|
||||||
): Promise<AsyncResult<(KubeJsonApiData | KubeJsonApiDataList)[]>> => {
|
): AsyncResult<(KubeJsonApiData | KubeJsonApiDataList)[]> => {
|
||||||
const result = await execHelm([
|
const result = await execHelm([
|
||||||
"get",
|
"get",
|
||||||
"manifest",
|
"manifest",
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
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 nonPromiseExecFileInjectable from "./non-promise-exec-file.injectable";
|
||||||
import { isNumber } from "@k8slens/utilities";
|
import { isNumber } from "@k8slens/utilities";
|
||||||
import assert from "assert";
|
import assert from "assert";
|
||||||
@ -13,7 +13,7 @@ export type ExecFileWithInput = (options: {
|
|||||||
filePath: string;
|
filePath: string;
|
||||||
commandArguments: string[];
|
commandArguments: string[];
|
||||||
input: string;
|
input: string;
|
||||||
}) => Promise<AsyncResult<string, unknown>>;
|
}) => AsyncResult<string, unknown>;
|
||||||
|
|
||||||
const execFileWithInputInjectable = getInjectable({
|
const execFileWithInputInjectable = getInjectable({
|
||||||
id: "exec-file-with-input",
|
id: "exec-file-with-input",
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getDiForUnitTesting } from "../../../../../getDiForUnitTesting";
|
import { getDiForUnitTesting } from "../../../../../getDiForUnitTesting";
|
||||||
import type { ExecFileWithInput } from "./exec-file-with-input.injectable";
|
import type { ExecFileWithInput } from "./exec-file-with-input.injectable";
|
||||||
import execFileWithInputInjectable 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 nonPromiseExecFileInjectable from "./non-promise-exec-file.injectable";
|
||||||
import { getPromiseStatus } from "@k8slens/test-utils";
|
import { getPromiseStatus } from "@k8slens/test-utils";
|
||||||
import EventEmitter from "events";
|
import EventEmitter from "events";
|
||||||
@ -56,7 +56,7 @@ describe("exec-file-with-input", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("when called", () => {
|
describe("when called", () => {
|
||||||
let actualPromise: Promise<AsyncResult<string, unknown>>;
|
let actualPromise: AsyncResult<string, unknown>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
actualPromise = execFileWithInput({
|
actualPromise = execFileWithInput({
|
||||||
|
|||||||
@ -5,13 +5,13 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import callForHelmManifestInjectable from "./call-for-helm-manifest/call-for-helm-manifest.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 { 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 = (
|
export type GetHelmReleaseResources = (
|
||||||
name: string,
|
name: string,
|
||||||
namespace: string,
|
namespace: string,
|
||||||
kubeconfigPath: string,
|
kubeconfigPath: string,
|
||||||
) => Promise<AsyncResult<KubeJsonApiData[], string>>;
|
) => AsyncResult<KubeJsonApiData[], string>;
|
||||||
|
|
||||||
const getHelmReleaseResourcesInjectable = getInjectable({
|
const getHelmReleaseResourcesInjectable = getInjectable({
|
||||||
id: "get-helm-release-resources",
|
id: "get-helm-release-resources",
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import type { AsyncFnMock } from "@async-fn/jest";
|
|||||||
import asyncFn 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 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 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";
|
import type { KubeJsonApiData } from "../../../../common/k8s-api/kube-json-api";
|
||||||
|
|
||||||
describe("get helm release resources", () => {
|
describe("get helm release resources", () => {
|
||||||
@ -37,7 +37,7 @@ describe("get helm release resources", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("when called", () => {
|
describe("when called", () => {
|
||||||
let actualPromise: Promise<AsyncResult<KubeJsonApiData[], string>>;
|
let actualPromise: AsyncResult<KubeJsonApiData[], string>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
actualPromise = getHelmReleaseResources(
|
actualPromise = getHelmReleaseResources(
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import execHelmInjectable from "../../exec-helm/exec-helm.injectable";
|
import execHelmInjectable from "../../exec-helm/exec-helm.injectable";
|
||||||
import type { HelmRepo } from "../../../../common/helm/helm-repo";
|
import type { HelmRepo } from "../../../../common/helm/helm-repo";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import type { AsyncResult } from "../../../../common/utils/async-result";
|
import type { AsyncResult } from "@k8slens/utilities";
|
||||||
|
|
||||||
const removeHelmRepositoryInjectable = getInjectable({
|
const removeHelmRepositoryInjectable = getInjectable({
|
||||||
id: "remove-helm-repository",
|
id: "remove-helm-repository",
|
||||||
@ -15,7 +15,7 @@ const removeHelmRepositoryInjectable = getInjectable({
|
|||||||
const execHelm = di.inject(execHelmInjectable);
|
const execHelm = di.inject(execHelmInjectable);
|
||||||
const logger = di.inject(loggerInjectable);
|
const logger = di.inject(loggerInjectable);
|
||||||
|
|
||||||
return async (repo: HelmRepo): Promise<AsyncResult<void, string>> => {
|
return async (repo: HelmRepo): AsyncResult<void, string> => {
|
||||||
logger.info(`[HELM]: removing repo ${repo.name} (${repo.url})`);
|
logger.info(`[HELM]: removing repo ${repo.name} (${repo.url})`);
|
||||||
|
|
||||||
const result = await execHelm([
|
const result = await execHelm([
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import type { WriteFile } from "../../common/fs/write-file.injectable";
|
|||||||
import type { RemovePath } from "../../common/fs/remove.injectable";
|
import type { RemovePath } from "../../common/fs/remove.injectable";
|
||||||
import type { ExecFile } from "../../common/fs/exec-file.injectable";
|
import type { ExecFile } from "../../common/fs/exec-file.injectable";
|
||||||
import type { JoinPaths } from "../../common/path/join-paths.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 {
|
export interface ResourceApplierDependencies {
|
||||||
emitAppEvent: EmitAppEvent;
|
emitAppEvent: EmitAppEvent;
|
||||||
@ -67,13 +67,13 @@ export class ResourceApplier {
|
|||||||
throw result.error.stderr || result.error.message;
|
throw result.error.stderr || result.error.message;
|
||||||
}
|
}
|
||||||
|
|
||||||
async create(resource: string): Promise<AsyncResult<string, string>> {
|
async create(resource: string): AsyncResult<string, string> {
|
||||||
this.dependencies.emitAppEvent({ name: "resource", action: "apply" });
|
this.dependencies.emitAppEvent({ name: "resource", action: "apply" });
|
||||||
|
|
||||||
return this.kubectlApply(this.sanitizeObject(resource));
|
return this.kubectlApply(this.sanitizeObject(resource));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async kubectlApply(content: string): Promise<AsyncResult<string, string>> {
|
protected async kubectlApply(content: string): AsyncResult<string, string> {
|
||||||
const kubectl = await this.cluster.ensureKubectl();
|
const kubectl = await this.cluster.ensureKubectl();
|
||||||
const kubectlPath = await kubectl.getPath();
|
const kubectlPath = await kubectl.getPath();
|
||||||
const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();
|
const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();
|
||||||
@ -112,15 +112,15 @@ export class ResourceApplier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async kubectlApplyAll(resources: string[], extraArgs = ["-o", "json"]): Promise<AsyncResult<string, string>> {
|
public async kubectlApplyAll(resources: string[], extraArgs = ["-o", "json"]): AsyncResult<string, string> {
|
||||||
return this.kubectlCmdAll("apply", resources, extraArgs);
|
return this.kubectlCmdAll("apply", resources, extraArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async kubectlDeleteAll(resources: string[], extraArgs?: string[]): Promise<AsyncResult<string, string>> {
|
public async kubectlDeleteAll(resources: string[], extraArgs?: string[]): AsyncResult<string, string> {
|
||||||
return this.kubectlCmdAll("delete", resources, extraArgs);
|
return this.kubectlCmdAll("delete", resources, extraArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async kubectlCmdAll(subCmd: string, resources: string[], parentArgs: string[] = []): Promise<AsyncResult<string, string>> {
|
protected async kubectlCmdAll(subCmd: string, resources: string[], parentArgs: string[] = []): AsyncResult<string, string> {
|
||||||
const kubectl = await this.cluster.ensureKubectl();
|
const kubectl = await this.cluster.ensureKubectl();
|
||||||
const kubectlPath = await kubectl.getPath();
|
const kubectlPath = await kubectl.getPath();
|
||||||
const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();
|
const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();
|
||||||
|
|||||||
@ -17,7 +17,6 @@ import type { CatalogCategory, CatalogCategoryRegistry, CatalogEntity } from "..
|
|||||||
import { CatalogAddButton } from "./catalog-add-button";
|
import { CatalogAddButton } from "./catalog-add-button";
|
||||||
import type { ShowNotification } from "../notifications";
|
import type { ShowNotification } from "../notifications";
|
||||||
import { MainLayout } from "../layout/main-layout";
|
import { MainLayout } from "../layout/main-layout";
|
||||||
import type { StorageLayer } from "@k8slens/utilities";
|
|
||||||
import { prevDefault } from "@k8slens/utilities";
|
import { prevDefault } from "@k8slens/utilities";
|
||||||
import { CatalogEntityDetails } from "./entity-details/view";
|
import { CatalogEntityDetails } from "./entity-details/view";
|
||||||
import { CatalogMenu } from "./catalog-menu";
|
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 type { Logger } from "../../../common/logger";
|
||||||
import loggerInjectable from "../../../common/logger.injectable";
|
import loggerInjectable from "../../../common/logger.injectable";
|
||||||
import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable";
|
import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable";
|
||||||
|
import type { StorageLayer } from "../../utils/storage-helper";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
catalogPreviousActiveTabStorage: StorageLayer<string | null>;
|
catalogPreviousActiveTabStorage: StorageLayer<string | null>;
|
||||||
|
|||||||
@ -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 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 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 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 {
|
export interface DetailedHelmRelease {
|
||||||
release: HelmReleaseDto;
|
release: HelmReleaseDto;
|
||||||
@ -17,7 +17,7 @@ export interface DetailedHelmRelease {
|
|||||||
export type RequestDetailedHelmRelease = (
|
export type RequestDetailedHelmRelease = (
|
||||||
name: string,
|
name: string,
|
||||||
namespace: string
|
namespace: string
|
||||||
) => Promise<AsyncResult<DetailedHelmRelease>>;
|
) => AsyncResult<DetailedHelmRelease>;
|
||||||
|
|
||||||
const requestDetailedHelmReleaseInjectable = getInjectable({
|
const requestDetailedHelmReleaseInjectable = getInjectable({
|
||||||
id: "request-detailed-helm-release",
|
id: "request-detailed-helm-release",
|
||||||
|
|||||||
@ -2,13 +2,13 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import autoBind from "auto-bind";
|
||||||
import { sum } from "lodash";
|
import { sum } from "lodash";
|
||||||
import { computed, makeObservable } from "mobx";
|
import { computed, makeObservable } from "mobx";
|
||||||
|
|
||||||
import type { Node, NodeApi } from "../../../common/k8s-api/endpoints";
|
import type { Node, NodeApi } from "../../../common/k8s-api/endpoints";
|
||||||
import type { KubeObjectStoreDependencies, KubeObjectStoreOptions } from "../../../common/k8s-api/kube-object.store";
|
import type { KubeObjectStoreDependencies, KubeObjectStoreOptions } from "../../../common/k8s-api/kube-object.store";
|
||||||
import { KubeObjectStore } 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<Node, NodeApi> {
|
export class NodeStore extends KubeObjectStore<Node, NodeApi> {
|
||||||
constructor(dependencies: KubeObjectStoreDependencies, api: NodeApi, opts?: KubeObjectStoreOptions) {
|
constructor(dependencies: KubeObjectStoreDependencies, api: NodeApi, opts?: KubeObjectStoreOptions) {
|
||||||
|
|||||||
@ -18,10 +18,10 @@ import type { IComputedValue } from "mobx";
|
|||||||
import currentRouteComponentInjectable from "../../routes/current-route-component.injectable";
|
import currentRouteComponentInjectable from "../../routes/current-route-component.injectable";
|
||||||
import welcomeRouteInjectable from "../../../common/front-end-routing/routes/welcome/welcome-route.injectable";
|
import welcomeRouteInjectable from "../../../common/front-end-routing/routes/welcome/welcome-route.injectable";
|
||||||
import { buildURL } from "@k8slens/utilities";
|
import { buildURL } from "@k8slens/utilities";
|
||||||
import type { StorageLayer } from "@k8slens/utilities";
|
|
||||||
import type { WatchForGeneralEntityNavigation } from "../../api/helpers/watch-for-general-entity-navigation.injectable";
|
import type { WatchForGeneralEntityNavigation } from "../../api/helpers/watch-for-general-entity-navigation.injectable";
|
||||||
import watchForGeneralEntityNavigationInjectable 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 currentPathInjectable from "../../routes/current-path.injectable";
|
||||||
|
import type { StorageLayer } from "../../utils/storage-helper";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
catalogPreviousActiveTabStorage: StorageLayer<string | null>;
|
catalogPreviousActiveTabStorage: StorageLayer<string | null>;
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
import * as uuid from "uuid";
|
import * as uuid from "uuid";
|
||||||
import { action, comparer, computed, makeObservable, observable, reaction, runInAction } from "mobx";
|
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 throttle from "lodash/throttle";
|
||||||
|
import type { StorageLayer } from "../../../utils/storage-helper";
|
||||||
|
import autoBind from "auto-bind";
|
||||||
|
|
||||||
export type TabId = string;
|
export type TabId = string;
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
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 apiManagerInjectable from "../../../../../../common/k8s-api/api-manager/manager.injectable";
|
||||||
import type { JsonPatch } from "../../../../../../common/k8s-api/kube-object.store";
|
import type { JsonPatch } from "../../../../../../common/k8s-api/kube-object.store";
|
||||||
import type { KubeObject } from "../../../../../../common/k8s-api/kube-object";
|
import type { KubeObject } from "../../../../../../common/k8s-api/kube-object";
|
||||||
@ -13,7 +13,7 @@ import { getErrorMessage } from "../../../../../../common/utils/get-error-messag
|
|||||||
export type CallForPatchResource = (
|
export type CallForPatchResource = (
|
||||||
item: KubeObject,
|
item: KubeObject,
|
||||||
patch: JsonPatch
|
patch: JsonPatch
|
||||||
) => Promise<AsyncResult<{ name: string; kind: string }>>;
|
) => AsyncResult<{ name: string; kind: string }>;
|
||||||
|
|
||||||
const callForPatchResourceInjectable = getInjectable({
|
const callForPatchResourceInjectable = getInjectable({
|
||||||
id: "call-for-patch-resource",
|
id: "call-for-patch-resource",
|
||||||
|
|||||||
@ -5,14 +5,14 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import type { KubeObject } from "../../../../../../common/k8s-api/kube-object";
|
import type { KubeObject } from "../../../../../../common/k8s-api/kube-object";
|
||||||
import { parseKubeApi } from "../../../../../../common/k8s-api/kube-api-parse";
|
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 { getErrorMessage } from "../../../../../../common/utils/get-error-message";
|
||||||
import apiManagerInjectable from "../../../../../../common/k8s-api/api-manager/manager.injectable";
|
import apiManagerInjectable from "../../../../../../common/k8s-api/api-manager/manager.injectable";
|
||||||
import { waitUntilDefined } from "@k8slens/utilities";
|
import { waitUntilDefined } from "@k8slens/utilities";
|
||||||
|
|
||||||
export type CallForResource = (
|
export type CallForResource = (
|
||||||
selfLink: string
|
selfLink: string
|
||||||
) => Promise<AsyncResult<KubeObject | undefined>>;
|
) => AsyncResult<KubeObject | undefined>;
|
||||||
|
|
||||||
const callForResourceInjectable = getInjectable({
|
const callForResourceInjectable = getInjectable({
|
||||||
id: "call-for-resource",
|
id: "call-for-resource",
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import releasesInjectable from "../../+helm-releases/releases.injectable";
|
|||||||
import updateReleaseInjectable from "../../+helm-releases/update-release/update-release.injectable";
|
import updateReleaseInjectable from "../../+helm-releases/update-release/update-release.injectable";
|
||||||
import type { HelmRelease } from "../../../../common/k8s-api/endpoints/helm-releases.api";
|
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 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 { waitUntilDefined } from "@k8slens/utilities";
|
||||||
import type { SelectOption } from "../../select";
|
import type { SelectOption } from "../../select";
|
||||||
import type { DockTab } from "../dock/store";
|
import type { DockTab } from "../dock/store";
|
||||||
@ -22,7 +22,7 @@ import upgradeChartTabDataInjectable from "./tab-data.injectable";
|
|||||||
export interface UpgradeChartModel {
|
export interface UpgradeChartModel {
|
||||||
readonly release: HelmRelease;
|
readonly release: HelmRelease;
|
||||||
readonly versionOptions: IComputedValue<SelectOption<HelmChartVersion>[]>;
|
readonly versionOptions: IComputedValue<SelectOption<HelmChartVersion>[]>;
|
||||||
readonly configration: {
|
readonly configuration: {
|
||||||
readonly value: IComputedValue<string>;
|
readonly value: IComputedValue<string>;
|
||||||
set: (value: string) => void;
|
set: (value: string) => void;
|
||||||
readonly error: IComputedValue<string | undefined>;
|
readonly error: IComputedValue<string | undefined>;
|
||||||
@ -32,7 +32,7 @@ export interface UpgradeChartModel {
|
|||||||
readonly value: IComputedValue<HelmChartVersion | undefined>;
|
readonly value: IComputedValue<HelmChartVersion | undefined>;
|
||||||
set: (value: SingleValue<SelectOption<HelmChartVersion>>) => void;
|
set: (value: SingleValue<SelectOption<HelmChartVersion>>) => void;
|
||||||
};
|
};
|
||||||
submit: () => Promise<AsyncResult<void, string>>;
|
submit: () => AsyncResult<void, string>;
|
||||||
}
|
}
|
||||||
|
|
||||||
const upgradeChartModelInjectable = getInjectable({
|
const upgradeChartModelInjectable = getInjectable({
|
||||||
@ -69,7 +69,7 @@ const upgradeChartModelInjectable = getInjectable({
|
|||||||
|
|
||||||
const configrationValue = observable.box<string>();
|
const configrationValue = observable.box<string>();
|
||||||
const configrationEditError = observable.box<string>();
|
const configrationEditError = observable.box<string>();
|
||||||
const configration: UpgradeChartModel["configration"] = {
|
const configration: UpgradeChartModel["configuration"] = {
|
||||||
value: computed(() => configrationValue.get() ?? storedConfiguration.value.get()),
|
value: computed(() => configrationValue.get() ?? storedConfiguration.value.get()),
|
||||||
set: action((value) => {
|
set: action((value) => {
|
||||||
configrationValue.set(value);
|
configrationValue.set(value);
|
||||||
@ -97,7 +97,7 @@ const upgradeChartModelInjectable = getInjectable({
|
|||||||
return {
|
return {
|
||||||
release,
|
release,
|
||||||
versionOptions,
|
versionOptions,
|
||||||
configration,
|
configuration: configration,
|
||||||
version,
|
version,
|
||||||
submit: async () => {
|
submit: async () => {
|
||||||
const selectedVersion = version.value.get();
|
const selectedVersion = version.value.get();
|
||||||
|
|||||||
@ -61,7 +61,7 @@ export class NonInjectedUpgradeChart extends React.Component<UpgradeChartProps &
|
|||||||
>
|
>
|
||||||
<InfoPanel
|
<InfoPanel
|
||||||
tabId={tabId}
|
tabId={tabId}
|
||||||
error={model.configration.error.get()}
|
error={model.configuration.error.get()}
|
||||||
submit={this.upgrade}
|
submit={this.upgrade}
|
||||||
submitLabel="Upgrade"
|
submitLabel="Upgrade"
|
||||||
submittingMessage="Updating.."
|
submittingMessage="Updating.."
|
||||||
@ -90,9 +90,9 @@ export class NonInjectedUpgradeChart extends React.Component<UpgradeChartProps &
|
|||||||
/>
|
/>
|
||||||
<EditorPanel
|
<EditorPanel
|
||||||
tabId={tabId}
|
tabId={tabId}
|
||||||
value={model.configration.value.get()}
|
value={model.configuration.value.get()}
|
||||||
onChange={model.configration.set}
|
onChange={model.configuration.set}
|
||||||
onError={model.configration.setError}
|
onError={model.configuration.setError}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import "./drawer.scss";
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { clipboard } from "electron";
|
import { clipboard } from "electron";
|
||||||
import { createPortal } from "react-dom";
|
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 { cssNames, noop } from "@k8slens/utilities";
|
||||||
import { Icon } from "../icon";
|
import { Icon } from "../icon";
|
||||||
import type { AnimateName } from "../animate";
|
import type { AnimateName } from "../animate";
|
||||||
@ -18,6 +18,7 @@ import drawerStorageInjectable, { defaultDrawerWidth } from "./drawer-storage/dr
|
|||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import historyInjectable from "../../navigation/history.injectable";
|
import historyInjectable from "../../navigation/history.injectable";
|
||||||
import type { History } from "history";
|
import type { History } from "history";
|
||||||
|
import type { StorageLayer } from "../../utils/storage-helper";
|
||||||
|
|
||||||
export type DrawerPosition = "top" | "left" | "right" | "bottom";
|
export type DrawerPosition = "top" | "left" | "right" | "bottom";
|
||||||
|
|
||||||
|
|||||||
@ -3,9 +3,9 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* 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 { computed, observable, reaction, makeObservable, action } from "mobx";
|
||||||
import type { PageParam } from "../../../navigation/page-param";
|
import type { PageParam } from "../../../navigation/page-param";
|
||||||
import { autoBind } from "@k8slens/utilities";
|
|
||||||
|
|
||||||
export enum FilterType {
|
export enum FilterType {
|
||||||
SEARCH = "search",
|
SEARCH = "search",
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import { computed } from "mobx";
|
import { computed } from "mobx";
|
||||||
import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx";
|
import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx";
|
||||||
import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-item-injection-token";
|
import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-item-injection-token";
|
||||||
import { byValue } from "../../../../common/utils/sort-function";
|
import { byValue } from "@k8slens/utilities";
|
||||||
|
|
||||||
const kubeObjectDetailItemsInjectable = getInjectable({
|
const kubeObjectDetailItemsInjectable = getInjectable({
|
||||||
id: "kube-object-detail-items",
|
id: "kube-object-detail-items",
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import styles from "./kubeconfig-dialog.module.scss";
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import type { IObservableValue } from "mobx";
|
import type { IObservableValue } from "mobx";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { cssNames, saveFileDialog } from "@k8slens/utilities";
|
import { cssNames } from "@k8slens/utilities";
|
||||||
import { Button } from "../button";
|
import { Button } from "../button";
|
||||||
import type { DialogProps } from "../dialog";
|
import type { DialogProps } from "../dialog";
|
||||||
import { Dialog } from "../dialog";
|
import { Dialog } from "../dialog";
|
||||||
@ -19,6 +19,7 @@ import { clipboard } from "electron";
|
|||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import showSuccessNotificationInjectable from "../notifications/show-success-notification.injectable";
|
import showSuccessNotificationInjectable from "../notifications/show-success-notification.injectable";
|
||||||
import kubeconfigDialogStateInjectable from "./state.injectable";
|
import kubeconfigDialogStateInjectable from "./state.injectable";
|
||||||
|
import { saveFileDialog } from "../../utils/saveFile";
|
||||||
|
|
||||||
export interface KubeconfigDialogData {
|
export interface KubeconfigDialogData {
|
||||||
title?: React.ReactNode;
|
title?: React.ReactNode;
|
||||||
|
|||||||
@ -7,13 +7,13 @@ import styles from "./main-layout.module.scss";
|
|||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import type { StorageLayer } from "@k8slens/utilities";
|
|
||||||
import { cssNames } from "@k8slens/utilities";
|
import { cssNames } from "@k8slens/utilities";
|
||||||
import { ErrorBoundary } from "../error-boundary";
|
import { ErrorBoundary } from "../error-boundary";
|
||||||
import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "../resizing-anchor";
|
import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "../resizing-anchor";
|
||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable";
|
import type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable";
|
||||||
import sidebarStorageInjectable, { defaultSidebarWidth } 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 {
|
export interface MainLayoutProps {
|
||||||
sidebar: React.ReactNode;
|
sidebar: React.ReactNode;
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import styles from "./sidebar-items.module.scss";
|
|||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { computed, makeObservable } from "mobx";
|
import { computed, makeObservable } from "mobx";
|
||||||
import type { StorageLayer } from "@k8slens/utilities";
|
|
||||||
import { cssNames } from "@k8slens/utilities";
|
import { cssNames } from "@k8slens/utilities";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { NavLink } from "react-router-dom";
|
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 type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable";
|
||||||
import sidebarStorageInjectable from "./sidebar-storage/sidebar-storage.injectable";
|
import sidebarStorageInjectable from "./sidebar-storage/sidebar-storage.injectable";
|
||||||
import type { HierarchicalSidebarItem } from "./sidebar-items.injectable";
|
import type { HierarchicalSidebarItem } from "./sidebar-items.injectable";
|
||||||
|
import type { StorageLayer } from "../../utils/storage-helper";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
sidebarStorage: StorageLayer<SidebarStorageState>;
|
sidebarStorage: StorageLayer<SidebarStorageState>;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* 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";
|
import type { TableSortParams } from "../table";
|
||||||
|
|
||||||
export interface TableStorageModel {
|
export interface TableStorageModel {
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import type { ReactNode } from "react";
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import type { TooltipProps } from "./tooltip";
|
import type { TooltipProps } from "./tooltip";
|
||||||
import { Tooltip } from "./tooltip";
|
import { Tooltip } from "./tooltip";
|
||||||
import { isReactNode } from "../../utils/isReactNode";
|
import { isReactNode } from "@k8slens/utilities";
|
||||||
import uniqueId from "lodash/uniqueId";
|
import uniqueId from "lodash/uniqueId";
|
||||||
import type { SingleOrMany } from "@k8slens/utilities";
|
import type { SingleOrMany } from "@k8slens/utilities";
|
||||||
|
|
||||||
|
|||||||
@ -9,10 +9,10 @@ import { windowActionHandleChannel, windowLocationChangedChannel, windowOpenAppM
|
|||||||
import { extensionDiscoveryStateChannel, extensionLoaderFromMainChannel } from "../../common/ipc/extension-handling";
|
import { extensionDiscoveryStateChannel, extensionLoaderFromMainChannel } from "../../common/ipc/extension-handling";
|
||||||
import type { InstalledExtension } from "../../extensions/extension-discovery/extension-discovery";
|
import type { InstalledExtension } from "../../extensions/extension-discovery/extension-discovery";
|
||||||
import type { LensExtensionId } from "../../extensions/lens-extension";
|
import type { LensExtensionId } from "../../extensions/lens-extension";
|
||||||
import { toJS } from "@k8slens/utilities";
|
|
||||||
import type { Location } from "history";
|
import type { Location } from "history";
|
||||||
import { getLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
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 ipcRendererInjectable from "../utils/channel/ipc-renderer.injectable";
|
||||||
|
import { toJS } from "../../common/utils";
|
||||||
|
|
||||||
function requestMain(channel: string, ...args: any[]) {
|
function requestMain(channel: string, ...args: any[]) {
|
||||||
const di = getLegacyGlobalDiForExtensionApi();
|
const di = getLegacyGlobalDiForExtensionApi();
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import autoBind from "auto-bind";
|
||||||
import type { ItemObject } from "../../common/item.store";
|
import type { ItemObject } from "../../common/item.store";
|
||||||
import { autoBind } from "@k8slens/utilities";
|
|
||||||
|
|
||||||
export type ForwardedPortStatus = "Active" | "Disabled";
|
export type ForwardedPortStatus = "Active" | "Disabled";
|
||||||
export interface ForwardedPort {
|
export interface ForwardedPort {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user