Skip to content

Commit f483bd8

Browse files
committed
fix: increment vIndex on encountering /v/v/
1 parent 501e22f commit f483bd8

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

server/utils/parse-package-params.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ export function parsePackageParams(segments: string[]): {
66
rawPackageName: string
77
rawVersion: string | undefined
88
} {
9-
const packageSegmentCount = segments[0]?.startsWith('@') ? 2 : 1
10-
const vIndex = packageSegmentCount
9+
let vIndex = segments.indexOf('v')
1110

12-
if (segments[vIndex] === 'v' && vIndex < segments.length - 1) {
11+
// If we encounter ".../v/v/...", treat the second "v" as the version delimiter.
12+
if (segments[vIndex] === 'v' && segments[vIndex + 1] === 'v') {
13+
vIndex++
14+
}
15+
16+
if (vIndex !== -1 && vIndex < segments.length - 1) {
1317
return {
1418
rawPackageName: segments.slice(0, vIndex).join('/'),
1519
rawVersion: segments.slice(vIndex + 1).join('/'),

shared/utils/parse-package-param.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@ export interface ParsedPackageParams {
3737
*/
3838
export function parsePackageParam(pkgParam: string): ParsedPackageParams {
3939
const segments = pkgParam.split('/')
40-
const packageSegmentCount = segments[0]?.startsWith('@') ? 2 : 1
41-
const vIndex = packageSegmentCount
40+
let vIndex = segments.indexOf('v')
4241

43-
if (segments[vIndex] === 'v' && vIndex < segments.length - 1) {
42+
// If we encounter ".../v/v/...", treat the second "v" as the version delimiter.
43+
if (segments[vIndex] === 'v' && segments[vIndex + 1] === 'v') {
44+
vIndex++
45+
}
46+
47+
if (vIndex !== -1 && vIndex < segments.length - 1) {
4448
return {
4549
packageName: segments.slice(0, vIndex).join('/'),
4650
version: segments[vIndex + 1],

0 commit comments

Comments
 (0)