File tree Expand file tree Collapse file tree 2 files changed +14
-6
lines changed
Expand file tree Collapse file tree 2 files changed +14
-6
lines changed Original file line number Diff line number Diff 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 ( '/' ) ,
Original file line number Diff line number Diff line change @@ -37,10 +37,14 @@ export interface ParsedPackageParams {
3737 */
3838export 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 ] ,
You can’t perform that action at this time.
0 commit comments