From d91026da26d7d0626e55a1739949449a1f77decc Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 9 Sep 2025 06:51:56 +0000 Subject: [PATCH] refactor(@angular/cli): exclude Cnpm from LOCKFILE_NAMES type The `LOCKFILE_NAMES` constant in `packages/angular/cli/src/utilities/package-manager.ts` is updated to explicitly exclude `PackageManager.Cnpm` from its type definition. This refactors the type to accurately reflect the package managers supported by the lockfile detection logic. --- packages/angular/cli/src/utilities/package-manager.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/angular/cli/src/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts index 430ff91c7d48..63316fe2c67f 100644 --- a/packages/angular/cli/src/utilities/package-manager.ts +++ b/packages/angular/cli/src/utilities/package-manager.ts @@ -18,7 +18,9 @@ import { memoize } from './memoize'; /** * A map of package managers to their corresponding lockfile names. */ -const LOCKFILE_NAMES: Readonly> = { +const LOCKFILE_NAMES: Readonly< + Record, string | readonly string[]> +> = { [PackageManager.Yarn]: 'yarn.lock', [PackageManager.Pnpm]: 'pnpm-lock.yaml', [PackageManager.Bun]: ['bun.lockb', 'bun.lock'], @@ -289,7 +291,10 @@ export class PackageManagerUtils { * @param filesInRoot An array of file names in the root directory. * @returns True if the lockfile exists, false otherwise. */ - private hasLockfile(packageManager: PackageManager, filesInRoot: string[]): boolean { + private hasLockfile( + packageManager: Exclude, + filesInRoot: string[], + ): boolean { const lockfiles = LOCKFILE_NAMES[packageManager]; return typeof lockfiles === 'string'