MCPcopy Index your code
hub / github.com/npmx-dev/npmx.dev / parsePackageParams

Function parsePackageParams

server/utils/parse-package-params.ts:5–27  ·  view source on GitHub ↗
(segments: string[])

Source from the content-addressed store, hash-verified

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 let vIndex = segments.indexOf('v')
10
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) {
17 return {
18 rawPackageName: segments.slice(0, vIndex).join('/'),
19 rawVersion: segments.slice(vIndex + 1).join('/'),
20 }
21 }
22
23 return {
24 rawPackageName: segments.join('/'),
25 rawVersion: undefined,
26 }
27}

Callers 13

readme-loaders.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...slug].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected