forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
1/**
2 * Parses Nitro router segments into packageName and an optional version
3 * Handles patterns: [pkg], [pkg, 'v', version], [@scope, pkg], [@scope, pkg, 'v', version]
4 */
5export function parsePackageParams(segments: string[]): {
6 rawPackageName: string
7 rawVersion: string | undefined
8} {
9 const vIndex = segments.indexOf('v')
10
11 if (vIndex !== -1 && vIndex < segments.length - 1) {
12 return {
13 rawPackageName: segments.slice(0, vIndex).join('/'),
14 rawVersion: segments.slice(vIndex + 1).join('/'),
15 }
16 }
17
18 return {
19 rawPackageName: segments.join('/'),
20 rawVersion: undefined,
21 }
22}