forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
1/**
2 * Parse package name and optional version from the route URL.
3 *
4 * Routes use structured params:
5 * /package/nuxt → org: undefined, name: "nuxt"
6 * /package/@nuxt/kit → org: "@nuxt", name: "kit"
7 * /package/nuxt/v/4.2.0 → org: undefined, name: "nuxt", version: "4.2.0"
8 * /package/@nuxt/kit/v/1.0.0 → org: "@nuxt", name: "kit", version: "1.0.0"
9 */
10export function usePackageRoute() {
11 const route = useRoute<'package'>('package')
12
13 const packageName = computed(() => {
14 const { org, name } = route.params
15 return org ? `${org}/${name}` : name
16 })
17
18 const requestedVersion = computed(() => ('version' in route.params ? route.params.version : null))
19 const orgName = computed(() => {
20 const org = route.params.org
21 return org ? org.replace(/^@/, '') : null
22 })
23
24 return {
25 packageName,
26 requestedVersion,
27 orgName,
28 }
29}