[READ-ONLY] a fast, modern browser for the npm registry
at main 29 lines 870 B view raw
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}