From 927c0039d73595d2d11e3af59491ee1d72b39df7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 15 Apr 2026 14:39:42 +0200 Subject: [PATCH] repo-tools, create-app: replace duplicate error utilities with cli-common imports (#33893) * Replace duplicate error utilities with @backstage/cli-common imports Remove dead CustomError and ExitCodeError classes from repo-tools and create-app, replacing them with the ExitCodeError import from @backstage/cli-common. This fixes the instanceof check in exitWithError so it actually catches errors thrown by cli-common's run(). Signed-off-by: Patrik Oldsberg Made-with: Cursor * Add changeset for repo-tools and create-app Signed-off-by: Patrik Oldsberg Made-with: Cursor --------- Signed-off-by: Patrik Oldsberg --- .../replace-duplicate-error-utilities.md | 6 ++++++ packages/create-app/src/lib/errors.ts | 20 +------------------ packages/repo-tools/src/lib/errors.ts | 20 +------------------ 3 files changed, 8 insertions(+), 38 deletions(-) create mode 100644 .changeset/replace-duplicate-error-utilities.md diff --git a/.changeset/replace-duplicate-error-utilities.md b/.changeset/replace-duplicate-error-utilities.md new file mode 100644 index 0000000000..4e7d3d4318 --- /dev/null +++ b/.changeset/replace-duplicate-error-utilities.md @@ -0,0 +1,6 @@ +--- +'@backstage/repo-tools': patch +'@backstage/create-app': patch +--- + +Replaced internal error utilities with shared ones from `@backstage/cli-common`. diff --git a/packages/create-app/src/lib/errors.ts b/packages/create-app/src/lib/errors.ts index 2f67b94ae1..8e5d2b1423 100644 --- a/packages/create-app/src/lib/errors.ts +++ b/packages/create-app/src/lib/errors.ts @@ -14,27 +14,9 @@ * limitations under the License. */ +import { ExitCodeError } from '@backstage/cli-common'; import chalk from 'chalk'; -export class CustomError extends Error { - get name(): string { - return this.constructor.name; - } -} - -export class ExitCodeError extends CustomError { - readonly code: number; - - constructor(code: number, command?: string) { - if (command) { - super(`Command '${command}' exited with code ${code}`); - } else { - super(`Child exited with code ${code}`); - } - this.code = code; - } -} - export function exitWithError(error: Error): never { if (error instanceof ExitCodeError) { process.stderr.write(`\n${chalk.red(error.message)}\n\n`); diff --git a/packages/repo-tools/src/lib/errors.ts b/packages/repo-tools/src/lib/errors.ts index f4d3cb879b..8e5d2b1423 100644 --- a/packages/repo-tools/src/lib/errors.ts +++ b/packages/repo-tools/src/lib/errors.ts @@ -14,27 +14,9 @@ * limitations under the License. */ +import { ExitCodeError } from '@backstage/cli-common'; import chalk from 'chalk'; -export class CustomError extends Error { - get name(): string { - return this.constructor.name; - } -} - -export class ExitCodeError extends CustomError { - readonly code: number; - - constructor(code: number, command?: string) { - super( - command - ? `Command '${command}' exited with code ${code}` - : `Child exited with code ${code}`, - ); - this.code = code; - } -} - export function exitWithError(error: Error): never { if (error instanceof ExitCodeError) { process.stderr.write(`\n${chalk.red(error.message)}\n\n`);