fix: recursive update with workspace alias (#7999)

close #7975
This commit is contained in:
Khải authored and GitHub committed 2024-04-30 01:17:12 +02:00
1 parent 7e69321e53
commit cb0f459c54
18 files changed
+224 -13

No files matched your search

+1
View File
@@ -41,6 +41,7 @@
"@pnpm/resolve-workspace-range": "workspace:*",
"@pnpm/resolver-base": "workspace:*",
"@pnpm/types": "workspace:*",
"@pnpm/workspace.spec-parser": "workspace:*",
"@zkochan/retry": "^0.2.0",
"encode-registry": "^3.0.1",
"load-json-file": "^6.2.0",
@@ -1,17 +1,14 @@
export function workspacePrefToNpm (workspacePref: string): string {
const prefParts = /^workspace:([^._/][^@]*@)?(.*)$/.exec(workspacePref)
import { WorkspaceSpec } from '@pnpm/workspace.spec-parser'
if (prefParts == null) {
export function workspacePrefToNpm (workspacePref: string): string {
const parseResult = WorkspaceSpec.parse(workspacePref)
if (parseResult == null) {
throw new Error(`Invalid workspace spec: ${workspacePref}`)
}
const [workspacePkgAlias, workspaceVersion] = prefParts.slice(1)
const pkgAliasPart = workspacePkgAlias != null && workspacePkgAlias
? `npm:${workspacePkgAlias}`
: ''
const versionPart = workspaceVersion === '^' || workspaceVersion === '~'
? '*'
: workspaceVersion
return `${pkgAliasPart}${versionPart}`
const { alias, version } = parseResult
const versionPart = version === '^' || version === '~' ? '*' : version
return alias
? `npm:${alias}@${versionPart}`
: versionPart
}
+3
View File
@@ -33,6 +33,9 @@
{
"path": "../../workspace/resolve-workspace-range"
},
{
"path": "../../workspace/spec-parser"
},
{
"path": "../resolver-base"
}