diff --git a/src/common/fs/exec-file.injectable.ts b/src/common/fs/exec-file.injectable.ts index 3b0a1d851c..4a462932c0 100644 --- a/src/common/fs/exec-file.injectable.ts +++ b/src/common/fs/exec-file.injectable.ts @@ -3,12 +3,12 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import type { ExecFileOptions } from "child_process"; +import type { ExecFileException, ExecFileOptions } from "child_process"; import { execFile } from "child_process"; import type { AsyncResult } from "../utils/async-result"; export interface ExecFile { - (filePath: string, args: string[], options?: ExecFileOptions): Promise>; + (filePath: string, args: string[], options?: ExecFileOptions): Promise>; } const execFileInjectable = getInjectable({ @@ -19,10 +19,7 @@ const execFileInjectable = getInjectable({ if (error) { resolve({ callWasSuccessful: false, - error: { - error, - stderr, - }, + error: Object.assign(error, { stderr }), }); } else { resolve({ diff --git a/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts b/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts index abc8283226..e7d2b00bbc 100644 --- a/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts +++ b/src/features/helm-charts/add-custom-helm-repository-in-preferences.test.ts @@ -185,10 +185,9 @@ describe("add custom helm repository in preferences", () => { beforeEach(async () => { await execFileMock.resolve({ callWasSuccessful: false, - error: { - error: new Error("Some error"), + error: Object.assign(new Error("Some error"), { stderr: "", - }, + }), }); }); diff --git a/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts b/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts index c81bcc5208..eab408f337 100644 --- a/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts +++ b/src/features/helm-charts/add-helm-repository-from-list-in-preferences.test.ts @@ -130,10 +130,9 @@ describe("add helm repository from list in preferences", () => { beforeEach(async () => { await execFileMock.resolve({ callWasSuccessful: false, - error: { - error: new Error("Some error"), + error: Object.assign(new Error("Some error"), { stderr: "", - }, + }), }); }); diff --git a/src/features/helm-charts/listing-active-helm-repositories-in-preferences.test.ts b/src/features/helm-charts/listing-active-helm-repositories-in-preferences.test.ts index 99336697ff..b3cf629e1d 100644 --- a/src/features/helm-charts/listing-active-helm-repositories-in-preferences.test.ts +++ b/src/features/helm-charts/listing-active-helm-repositories-in-preferences.test.ts @@ -85,10 +85,9 @@ describe("listing active helm repositories in preferences", () => { beforeEach(async () => { await execFileMock.resolve({ callWasSuccessful: false, - error: { - error: new Error("some error"), + error: Object.assign(new Error("Some error"), { stderr: "some-error", - }, + }), }); }); @@ -235,10 +234,9 @@ describe("listing active helm repositories in preferences", () => { beforeEach(async () => { await execFileMock.resolve({ callWasSuccessful: false, - error: { - error: new Error("Some error"), + error: Object.assign(new Error("Some error"), { stderr: "Some error", - }, + }), }); }); @@ -271,10 +269,9 @@ describe("listing active helm repositories in preferences", () => { await execFileMock.resolve({ callWasSuccessful: false, - error: { - error: new Error("no repositories found. You must add one before updating"), + error: Object.assign(new Error("no repositories found. You must add one before updating"), { stderr: "no repositories found. You must add one before updating", - }, + }), }); }); @@ -300,10 +297,9 @@ describe("listing active helm repositories in preferences", () => { beforeEach(async () => { await execFileMock.resolve({ callWasSuccessful: false, - error: { - error: new Error("Some error"), + error: Object.assign(new Error("Some error"), { stderr: "Some error", - }, + }), }); }); diff --git a/src/main/helm/exec-helm/exec-helm.injectable.ts b/src/main/helm/exec-helm/exec-helm.injectable.ts index 9e7cf1fb1e..39f45a3f7d 100644 --- a/src/main/helm/exec-helm/exec-helm.injectable.ts +++ b/src/main/helm/exec-helm/exec-helm.injectable.ts @@ -3,11 +3,12 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ 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 helmBinaryPathInjectable from "../helm-binary-path.injectable"; -export type ExecHelm = (args: string[]) => Promise>; +export type ExecHelm = (args: string[]) => Promise>; const execHelmInjectable = getInjectable({ id: "exec-helm", diff --git a/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts b/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts index ae1f6c5467..b5176b25b9 100644 --- a/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts +++ b/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts @@ -30,7 +30,7 @@ const callForHelmManifestInjectable = getInjectable({ ]); if (!result.callWasSuccessful) { - return { callWasSuccessful: false, error: result.error.error.message }; + return { callWasSuccessful: false, error: result.error.message }; } return { diff --git a/src/main/helm/repositories/add-helm-repository/add-helm-repository.injectable.ts b/src/main/helm/repositories/add-helm-repository/add-helm-repository.injectable.ts index d9e9a89d9d..5292f8a662 100644 --- a/src/main/helm/repositories/add-helm-repository/add-helm-repository.injectable.ts +++ b/src/main/helm/repositories/add-helm-repository/add-helm-repository.injectable.ts @@ -65,7 +65,7 @@ const addHelmRepositoryInjectable = getInjectable({ return { callWasSuccessful: false, - error: result.error.stderr || result.error.error.message, + error: result.error.stderr || result.error.message, }; }; }, diff --git a/src/main/resource-applier/resource-applier.ts b/src/main/resource-applier/resource-applier.ts index c19213d055..78d13874b8 100644 --- a/src/main/resource-applier/resource-applier.ts +++ b/src/main/resource-applier/resource-applier.ts @@ -63,7 +63,7 @@ export class ResourceApplier { return result.response; } - throw result.error.stderr || result.error.error; + throw result.error.stderr || result.error.message; } async create(resource: string): Promise { @@ -102,7 +102,7 @@ export class ResourceApplier { return result.response; } - throw result.error.stderr || result.error.error; + throw result.error.stderr || result.error.message; } finally { await this.dependencies.deleteFile(fileName); } @@ -141,11 +141,11 @@ export class ResourceApplier { return result.response; } - this.dependencies.logger.error(`[RESOURCE-APPLIER] kubectl errored: ${result.error.error}`); + this.dependencies.logger.error(`[RESOURCE-APPLIER] kubectl errored: ${result.error.message}`); const splitError = result.error.stderr.split(`.yaml": `); - throw splitError[1] || result.error.error; + throw splitError[1] || result.error.message; } protected sanitizeObject(resource: string) {