From 150dc2f83417bcf65d7e72c47448f4c2ff5210b4 Mon Sep 17 00:00:00 2001 From: MeAkib Date: Sun, 1 Nov 2026 23:06:00 +0600 Subject: [PATCH] refactor(@angular/cli): remove unused code and exports Remove the `findWorkspaceFile` utility in `utilities/project.ts`, which has been unreferenced since the global configuration handling refactor in 746d0c596e, and remove the `export` keyword from eleven symbols that are only referenced within their defining file. None of these are public API: the package declares no `exports` field and has no public API golden. --- .../angular/cli/src/analytics/analytics.ts | 2 +- .../cli/src/commands/mcp/mcp-server.ts | 6 +- .../analyze-for-unsupported-zone-uses.ts | 2 +- .../migrate-test-file.ts | 2 +- .../onpush-zoneless-migration/ts-utils.ts | 2 +- .../src/commands/update/update-resolver.ts | 4 +- .../commands/update/utilities/cli-version.ts | 2 +- packages/angular/cli/src/utilities/config.ts | 2 +- packages/angular/cli/src/utilities/project.ts | 56 ------------------- 9 files changed, 11 insertions(+), 67 deletions(-) delete mode 100644 packages/angular/cli/src/utilities/project.ts diff --git a/packages/angular/cli/src/analytics/analytics.ts b/packages/angular/cli/src/analytics/analytics.ts index 7991904842bd..439619fdefff 100644 --- a/packages/angular/cli/src/analytics/analytics.ts +++ b/packages/angular/cli/src/analytics/analytics.ts @@ -20,7 +20,7 @@ import { isTTY } from '../utilities/tty'; /** * This is the ultimate safelist for checking if a package name is safe to report to analytics. */ -export const analyticsPackageSafelist = [ +const analyticsPackageSafelist = [ /^@angular\//, /^@angular-devkit\//, /^@nguniversal\//, diff --git a/packages/angular/cli/src/commands/mcp/mcp-server.ts b/packages/angular/cli/src/commands/mcp/mcp-server.ts index e50fc3dfd3ac..0103e17522f3 100644 --- a/packages/angular/cli/src/commands/mcp/mcp-server.ts +++ b/packages/angular/cli/src/commands/mcp/mcp-server.ts @@ -48,14 +48,14 @@ const STABLE_TOOLS = [ * The set of tools that are available but not enabled by default. * These tools are considered experimental and may have limitations. */ -export const EXPERIMENTAL_TOOLS: readonly AnyMcpToolDeclaration[] = [] as const; +const EXPERIMENTAL_TOOLS: readonly AnyMcpToolDeclaration[] = [] as const; /** * Experimental tools that are grouped together under a single name. * * Used for enabling them as a group. */ -export const EXPERIMENTAL_TOOL_GROUPS: Record = { +const EXPERIMENTAL_TOOL_GROUPS: Record = { 'all': EXPERIMENTAL_TOOLS, 'devserver': [], }; @@ -176,7 +176,7 @@ for equivalent actions. return server; } -export function assembleToolDeclarations( +function assembleToolDeclarations( stableDeclarations: readonly AnyMcpToolDeclaration[], experimentalDeclarations: readonly AnyMcpToolDeclaration[], options: { diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.ts index a523b43145eb..521007b83f30 100644 --- a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.ts +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.ts @@ -39,7 +39,7 @@ export async function analyzeForUnsupportedZoneUses( * @param ngZoneImport The import specifier for `NgZone`. * @returns A list of nodes that are unsupported `NgZone` usages. */ -export async function findUnsupportedZoneUsages( +async function findUnsupportedZoneUsages( sourceFile: SourceFile, ngZoneImport: ImportSpecifier, ): Promise { diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.ts index 79b5acbec70e..f8b1988ffe9f 100644 --- a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.ts +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.ts @@ -44,7 +44,7 @@ export async function migrateTestFile( return createFixResponseForZoneTests(sourceFile); } -export async function searchForGlobalZoneless(startPath: string, host: Host): Promise { +async function searchForGlobalZoneless(startPath: string, host: Host): Promise { const angularJsonDir = findAngularJsonDir(startPath, host); if (!angularJsonDir) { // Cannot determine project root, fallback to original behavior or assume false. diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.ts index 0c79dc31f2e0..e74de444db7c 100644 --- a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.ts +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.ts @@ -104,7 +104,7 @@ function getImportSpecifiers( * @param nodes Array of import specifiers to search through. * @param specifierName Name of the specifier to look for. */ -export function findImportSpecifier( +function findImportSpecifier( nodes: ts.NodeArray, specifierName: string, ): ts.ImportSpecifier | undefined { diff --git a/packages/angular/cli/src/commands/update/update-resolver.ts b/packages/angular/cli/src/commands/update/update-resolver.ts index 995762d92bc9..30231ad48dbb 100644 --- a/packages/angular/cli/src/commands/update/update-resolver.ts +++ b/packages/angular/cli/src/commands/update/update-resolver.ts @@ -91,7 +91,7 @@ function isReleaseAgeSatisfied( return Date.now() - publishTime >= minReleaseAge; } -export async function getSatisfyingVersion( +async function getSatisfyingVersion( registryClient: RegistryClient, metadata: PackageMetadata, range: string, @@ -368,7 +368,7 @@ function _getUpdateMetadata( return result; } -export function isPnpActive(workspaceRoot: string): boolean { +function isPnpActive(workspaceRoot: string): boolean { return ( process.versions.pnp !== undefined || existsSync(path.join(workspaceRoot, '.pnp.cjs')) || diff --git a/packages/angular/cli/src/commands/update/utilities/cli-version.ts b/packages/angular/cli/src/commands/update/utilities/cli-version.ts index 3791f7ad7070..6fb5edc0b1a1 100644 --- a/packages/angular/cli/src/commands/update/utilities/cli-version.ts +++ b/packages/angular/cli/src/commands/update/utilities/cli-version.ts @@ -79,7 +79,7 @@ export async function checkCLIVersion( * @param next Whether to use the next version. * @returns The version or tag to use for the CLI update runner. */ -export function getCLIUpdateRunnerVersion( +function getCLIUpdateRunnerVersion( packagesToUpdate: string[] | undefined, next: boolean, ): string | number { diff --git a/packages/angular/cli/src/utilities/config.ts b/packages/angular/cli/src/utilities/config.ts index 6aa762aa264f..32d7bf2c3d44 100644 --- a/packages/angular/cli/src/utilities/config.ts +++ b/packages/angular/cli/src/utilities/config.ts @@ -52,7 +52,7 @@ const currentDirectory = import.meta.dirname; // In bundled ESM output, files are located in `lib/` directly adjacent to `config/schema.json` // whereas in unbundled development/tests, `config.js` is in `src/utilities/`. const bundledSchemaPath = path.join(currentDirectory, 'config/schema.json'); -export const workspaceSchemaPath = existsSync(bundledSchemaPath) +const workspaceSchemaPath = existsSync(bundledSchemaPath) ? bundledSchemaPath : path.join(currentDirectory, '../../lib/config/schema.json'); diff --git a/packages/angular/cli/src/utilities/project.ts b/packages/angular/cli/src/utilities/project.ts deleted file mode 100644 index 12ca07545342..000000000000 --- a/packages/angular/cli/src/utilities/project.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -import { normalize } from '@angular-devkit/core'; -import * as fs from 'node:fs'; -import * as os from 'node:os'; -import * as path from 'node:path'; -import { findUpSync } from './find-up'; - -interface PackageDependencies { - dependencies?: Record; - devDependencies?: Record; -} - -export function findWorkspaceFile(currentDirectory = process.cwd()): string | null { - const possibleConfigFiles = ['angular.json', '.angular.json']; - const configFilePath = findUpSync(possibleConfigFiles, currentDirectory); - if (configFilePath === null) { - return null; - } - - const possibleDir = path.dirname(configFilePath); - - const homedir = os.homedir(); - if (normalize(possibleDir) === normalize(homedir)) { - const packageJsonPath = path.join(possibleDir, 'package.json'); - - try { - const packageJsonText = fs.readFileSync(packageJsonPath, 'utf-8'); - const packageJson = JSON.parse(packageJsonText) as PackageDependencies; - if (!containsCliDep(packageJson)) { - // No CLI dependency - return null; - } - } catch { - // No or invalid package.json - return null; - } - } - - return configFilePath; -} - -function containsCliDep(obj?: PackageDependencies): boolean { - const pkgName = '@angular/cli'; - if (!obj) { - return false; - } - - return !!(obj.dependencies?.[pkgName] || obj.devDependencies?.[pkgName]); -}