From bba2e496a6473b9d353e8f4f745acd7a06da0b3c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 20 Feb 2026 18:44:26 +0100 Subject: [PATCH] Move single-consumer lib files into the build module Moved `entryPoints.ts` and `role.ts` (+ test) from the shared `src/lib/` directory into `src/modules/build/lib/`, since the build module is their only consumer. This is part of making CLI modules independent of each other and of shared code outside the modules. Signed-off-by: Patrik Oldsberg --- .changeset/cli-internal-refactor.md | 5 +++++ .../cli/src/modules/build/commands/package/build/command.ts | 2 +- .../cli/src/modules/build/commands/package/start/command.ts | 2 +- packages/cli/src/modules/build/lib/builder/config.ts | 2 +- packages/cli/src/modules/build/lib/builder/plugins.ts | 2 +- .../cli/src/modules/build/lib/bundler/moduleFederation.ts | 2 +- packages/cli/src/{ => modules/build}/lib/entryPoints.ts | 0 .../cli/src/modules/build/lib/packager/productionPack.ts | 2 +- packages/cli/src/{ => modules/build}/lib/role.test.ts | 2 +- packages/cli/src/{ => modules/build}/lib/role.ts | 2 +- 10 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 .changeset/cli-internal-refactor.md rename packages/cli/src/{ => modules/build}/lib/entryPoints.ts (100%) rename packages/cli/src/{ => modules/build}/lib/role.test.ts (97%) rename packages/cli/src/{ => modules/build}/lib/role.ts (96%) diff --git a/.changeset/cli-internal-refactor.md b/.changeset/cli-internal-refactor.md new file mode 100644 index 0000000000..97957a2cd2 --- /dev/null +++ b/.changeset/cli-internal-refactor.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Internal refactor to improve module independence. diff --git a/packages/cli/src/modules/build/commands/package/build/command.ts b/packages/cli/src/modules/build/commands/package/build/command.ts index 017024c476..0882cfcf4f 100644 --- a/packages/cli/src/modules/build/commands/package/build/command.ts +++ b/packages/cli/src/modules/build/commands/package/build/command.ts @@ -17,7 +17,7 @@ import { OptionValues } from 'commander'; import fs from 'fs-extra'; import { buildPackage, Output } from '../../../lib/builder'; -import { findRoleFromCommand } from '../../../../../lib/role'; +import { findRoleFromCommand } from '../../../lib/role'; import { BackstagePackageJson, PackageGraph, diff --git a/packages/cli/src/modules/build/commands/package/start/command.ts b/packages/cli/src/modules/build/commands/package/start/command.ts index b38957f488..3e3dbb378a 100644 --- a/packages/cli/src/modules/build/commands/package/start/command.ts +++ b/packages/cli/src/modules/build/commands/package/start/command.ts @@ -17,7 +17,7 @@ import { OptionValues } from 'commander'; import { startPackage } from './startPackage'; import { resolveLinkedWorkspace } from './resolveLinkedWorkspace'; -import { findRoleFromCommand } from '../../../../../lib/role'; +import { findRoleFromCommand } from '../../../lib/role'; import { paths } from '../../../../../lib/paths'; export async function command(opts: OptionValues): Promise { diff --git a/packages/cli/src/modules/build/lib/builder/config.ts b/packages/cli/src/modules/build/lib/builder/config.ts index 91ddb68233..55ae09bf9c 100644 --- a/packages/cli/src/modules/build/lib/builder/config.ts +++ b/packages/cli/src/modules/build/lib/builder/config.ts @@ -41,7 +41,7 @@ import { forwardFileImports, cssEntryPoints } from './plugins'; import { BuildOptions, Output } from './types'; import { paths } from '../../../../lib/paths'; import { BackstagePackageJson } from '@backstage/cli-node'; -import { readEntryPoints } from '../../../../lib/entryPoints'; +import { readEntryPoints } from '../entryPoints'; const SCRIPT_EXTS = ['.js', '.jsx', '.ts', '.tsx']; diff --git a/packages/cli/src/modules/build/lib/builder/plugins.ts b/packages/cli/src/modules/build/lib/builder/plugins.ts index 2340884e3d..93b657bd09 100644 --- a/packages/cli/src/modules/build/lib/builder/plugins.ts +++ b/packages/cli/src/modules/build/lib/builder/plugins.ts @@ -29,7 +29,7 @@ import { OutputChunk, HasModuleSideEffects, } from 'rollup'; -import { EntryPoint } from '../../../../lib/entryPoints'; +import { EntryPoint } from '../entryPoints'; type ForwardFileImportsOptions = { include: Array | string | RegExp | null; diff --git a/packages/cli/src/modules/build/lib/bundler/moduleFederation.ts b/packages/cli/src/modules/build/lib/bundler/moduleFederation.ts index 8faab7f732..5e19c28555 100644 --- a/packages/cli/src/modules/build/lib/bundler/moduleFederation.ts +++ b/packages/cli/src/modules/build/lib/bundler/moduleFederation.ts @@ -16,7 +16,7 @@ import { ModuleFederationRemoteOptions } from './types'; import { BackstagePackageJson } from '@backstage/cli-node'; -import { readEntryPoints } from '../../../../lib/entryPoints'; +import { readEntryPoints } from '../entryPoints'; import { createTypeDistProject, getEntryPointDefaultFeatureType, diff --git a/packages/cli/src/lib/entryPoints.ts b/packages/cli/src/modules/build/lib/entryPoints.ts similarity index 100% rename from packages/cli/src/lib/entryPoints.ts rename to packages/cli/src/modules/build/lib/entryPoints.ts diff --git a/packages/cli/src/modules/build/lib/packager/productionPack.ts b/packages/cli/src/modules/build/lib/packager/productionPack.ts index f2a74179f4..ce9f15388c 100644 --- a/packages/cli/src/modules/build/lib/packager/productionPack.ts +++ b/packages/cli/src/modules/build/lib/packager/productionPack.ts @@ -18,7 +18,7 @@ import fs from 'fs-extra'; import npmPackList from 'npm-packlist'; import { resolve as resolvePath, posix as posixPath } from 'node:path'; import { BackstagePackageJson } from '@backstage/cli-node'; -import { readEntryPoints } from '../../../../lib/entryPoints'; +import { readEntryPoints } from '../entryPoints'; import { getEntryPointDefaultFeatureType } from '../../../../lib/typeDistProject'; import { Project } from 'ts-morph'; diff --git a/packages/cli/src/lib/role.test.ts b/packages/cli/src/modules/build/lib/role.test.ts similarity index 97% rename from packages/cli/src/lib/role.test.ts rename to packages/cli/src/modules/build/lib/role.test.ts index 76f51df06f..89fa533457 100644 --- a/packages/cli/src/lib/role.test.ts +++ b/packages/cli/src/modules/build/lib/role.test.ts @@ -20,7 +20,7 @@ import { findRoleFromCommand } from './role'; const mockDir = createMockDirectory(); -jest.mock('./paths', () => ({ +jest.mock('../../../lib/paths', () => ({ paths: { resolveTarget(filename: string) { return mockDir.resolve(filename); diff --git a/packages/cli/src/lib/role.ts b/packages/cli/src/modules/build/lib/role.ts similarity index 96% rename from packages/cli/src/lib/role.ts rename to packages/cli/src/modules/build/lib/role.ts index 49f39f789c..7af4ccb955 100644 --- a/packages/cli/src/lib/role.ts +++ b/packages/cli/src/modules/build/lib/role.ts @@ -16,7 +16,7 @@ import fs from 'fs-extra'; import { OptionValues } from 'commander'; -import { paths } from './paths'; +import { paths } from '../../../lib/paths'; import { PackageRoles, PackageRole } from '@backstage/cli-node'; export async function findRoleFromCommand(