MCPcopy
hub / github.com/npmx-dev/npmx.dev / parsePackageParam

Function parsePackageParam

shared/utils/parse-package-param.ts:38–60  ·  view source on GitHub ↗
(pkgParam: string)

Source from the content-addressed store, hash-verified

36 * ```
37 */
38export function parsePackageParam(pkgParam: string): ParsedPackageParams {
39 const segments = pkgParam.split('/')
40 let vIndex = segments.indexOf('v')
41
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) {
48 return {
49 packageName: segments.slice(0, vIndex).join('/'),
50 version: segments[vIndex + 1],
51 rest: segments.slice(vIndex + 2),
52 }
53 }
54
55 return {
56 packageName: segments.join('/'),
57 version: undefined,
58 rest: [],
59 }
60}

Callers 3

[...pkg].get.tsFile · 0.90
[...pkg].get.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected