From 2a515460e864562d7421cf773f0f8e48ef8575c4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 23 Feb 2026 21:43:50 +0100 Subject: [PATCH] Fix prettier existence checks and import order Use fs.pathExists instead of checking resolved path strings which are always truthy. Fix import ordering in e2e-test runCommand.ts. Signed-off-by: Patrik Oldsberg Co-authored-by: Cursor Signed-off-by: Patrik Oldsberg Co-authored-by: Cursor Signed-off-by: Patrik Oldsberg Co-authored-by: Cursor --- .changeset/fix-prettier-existence-check.md | 5 +++++ packages/e2e-test/src/commands/runCommand.ts | 2 +- .../src/commands/package/schema/openapi/generate/client.ts | 4 ++-- .../src/commands/package/schema/openapi/generate/server.ts | 4 +++- .../repo-tools/src/commands/package/schema/openapi/init.ts | 6 ++++-- .../repo-tools/src/commands/repo/schema/openapi/test.ts | 4 +++- 6 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 .changeset/fix-prettier-existence-check.md diff --git a/.changeset/fix-prettier-existence-check.md b/.changeset/fix-prettier-existence-check.md new file mode 100644 index 0000000000..96e8b79082 --- /dev/null +++ b/.changeset/fix-prettier-existence-check.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Fixed prettier existence checks in OpenAPI commands to use `fs.pathExists` instead of checking the resolved path string, which was always truthy. diff --git a/packages/e2e-test/src/commands/runCommand.ts b/packages/e2e-test/src/commands/runCommand.ts index dd9dd9b397..da39351400 100644 --- a/packages/e2e-test/src/commands/runCommand.ts +++ b/packages/e2e-test/src/commands/runCommand.ts @@ -27,11 +27,11 @@ import { waitFor, print } from '../lib/helpers'; import mysql from 'mysql2/promise'; import pgtools from 'pgtools'; +import { OptionValues } from 'commander'; import { findOwnPaths, runOutput, run } from '@backstage/cli-common'; /* eslint-disable-next-line no-restricted-syntax */ const ownPaths = findOwnPaths(__dirname); -import { OptionValues } from 'commander'; const templatePackagePaths = [ 'packages/cli/templates/frontend-plugin/package.json.hbs', diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts index 17033d881a..c5b2807fbd 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts @@ -87,7 +87,7 @@ async function generate( await fs.writeFile( resolve(parentDirectory, 'index.ts'), - `// + `// export * from './generated';`, ); @@ -96,7 +96,7 @@ async function generate( }); const prettier = targetPaths.resolveRoot('node_modules/.bin/prettier'); - if (prettier) { + if (await fs.pathExists(prettier)) { await exec(`${prettier} --write ${parentDirectory}`, [], { signal: abortSignal?.signal, }); diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts index 88c6df781a..e913fd3a8c 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts @@ -77,7 +77,9 @@ export const createOpenApiRouter = async ( ); await exec(`yarn backstage-cli package lint`, ['--fix', tsPath, indexFile]); - if (await targetPaths.resolveRoot('node_modules/.bin/prettier')) { + if ( + await fs.pathExists(targetPaths.resolveRoot('node_modules/.bin/prettier')) + ) { await exec(`yarn prettier`, ['--write', tsPath, indexFile], { cwd: targetPaths.rootDir, }); diff --git a/packages/repo-tools/src/commands/package/schema/openapi/init.ts b/packages/repo-tools/src/commands/package/schema/openapi/init.ts index 558a9a7387..04b6e73483 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/init.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/init.ts @@ -61,10 +61,12 @@ capture: # 🔧 Specify a command that will generate traffic command: yarn backstage-cli package test --no-watch ${ROUTER_TEST_PATHS.map( e => `"${e}"`, - ).join(' ')} + ).join(' ')} `, ); - if (await targetPaths.resolveRoot('node_modules/.bin/prettier')) { + if ( + await fs.pathExists(targetPaths.resolveRoot('node_modules/.bin/prettier')) + ) { await exec(`yarn prettier`, ['--write', opticConfigFilePath]); } } diff --git a/packages/repo-tools/src/commands/repo/schema/openapi/test.ts b/packages/repo-tools/src/commands/repo/schema/openapi/test.ts index d583854059..e735e729c6 100644 --- a/packages/repo-tools/src/commands/repo/schema/openapi/test.ts +++ b/packages/repo-tools/src/commands/repo/schema/openapi/test.ts @@ -82,7 +82,9 @@ async function test( throw err; } if ( - (await targetPaths.resolveRoot('node_modules/.bin/prettier')) && + (await fs.pathExists( + targetPaths.resolveRoot('node_modules/.bin/prettier'), + )) && options?.update ) { await exec(`yarn prettier`, ['--write', openapiPath]);