From 22e60ae88216c2d84400528a567697e3f103fb08 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Wed, 15 Nov 2023 13:35:57 +0000 Subject: [PATCH] fix(@angular/cli): handle packages with no version In some cases pacote will return undefined as `version` which resulted in `Cannot convert undefined or null to object`. Closes #26337 --- .../angular/cli/src/utilities/package-metadata.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/angular/cli/src/utilities/package-metadata.ts b/packages/angular/cli/src/utilities/package-metadata.ts index 0d683fedecc5..9eed9b78e9f4 100644 --- a/packages/angular/cli/src/utilities/package-metadata.ts +++ b/packages/angular/cli/src/utilities/package-metadata.ts @@ -249,6 +249,11 @@ export async function fetchPackageMetadata( ...(registry ? { registry } : {}), }); + if (!response.versions) { + // While pacote type declares that versions cannot be undefined this is not the case. + response.versions = {}; + } + // Normalize the response const metadata: PackageMetadata = { ...response, @@ -312,6 +317,13 @@ export async function getNpmPackageJson( fullMetadata: true, ...npmrc, ...(registry ? { registry } : {}), + }).then((response) => { + // While pacote type declares that versions cannot be undefined this is not the case. + if (!response.versions) { + response.versions = {}; + } + + return response; }); npmPackageJsonCache.set(packageName, response);