@@ -3,51 +3,41 @@ import { useProviderIcon } from '~/composables/useProviderIcon'
33
44definePageMeta ({
55 name: ' changes' ,
6- path: ' /package-changes/:path+' ,
7- alias: [' /package/changes/:path+' , ' /changes/:path+' ],
6+ // path: '/package-changes/:path+',
7+ // alias: ['/package/changes/:path+', '/changes/:path+'],
88 scrollMargin: 190 ,
99})
1010
1111// / routing
1212
1313const route = useRoute (' changes' )
14- const router = useRouter ()
1514// Parse package name, version, and file path from URL
1615// Patterns:
17- // /code/nuxt/v/4.2.0 → packageName: "nuxt", version: "4.2.0", filePath: null (show tree)
18- // /code/nuxt/v/4.2.0/src/index.ts → packageName: "nuxt", version: "4.2.0", filePath: "src/index.ts"
19- // /code/@nuxt/kit/v/1.0.0 → packageName: "@nuxt/kit", version: "1.0.0", filePath: null
16+ // /changes/nuxt/v/4.2.0 → packageName: "nuxt", version: "4.2.0", filePath: null (show tree)
17+ // /changes/nuxt/v/4.2.0/src/index.ts → packageName: "nuxt", version: "4.2.0", filePath: "src/index.ts"
18+ // /changes/@nuxt/kit/v/1.0.0 → packageName: "@nuxt/kit", version: "1.0.0", filePath: null
19+
20+ // const packageName = computed(() => {
21+ // const { org, name } = route.params
22+ // return org ? `${org}/${name}` : name
23+ // })
2024const parsedRoute = computed (() => {
21- const segments = route .params .path
22-
23- // Find the /v/ separator for version
24- const vIndex = segments .indexOf (' v' )
25- if (vIndex === - 1 || vIndex >= segments .length - 1 ) {
26- // No version specified - redirect or error
27- return {
28- packageName: segments .join (' /' ),
29- version: null as string | null ,
30- filePath: null as string | null ,
31- }
32- }
25+ const { org, name } = route .params
26+
27+ const packageName = org ? ` ${org }/${name } ` : name
3328
34- const packageName = segments .slice (0 , vIndex ).join (' /' )
35- const afterVersion = segments .slice (vIndex + 1 )
36- const version = afterVersion [0 ] ?? null
37- const filePath = afterVersion .length > 1 ? afterVersion .slice (1 ).join (' /' ) : null
29+ const version = ' version' in route .params ? route .params .version : null
3830
39- return { packageName , version , filePath }
31+ return { packageName , version }
4032})
4133
4234const packageName = computed (() => parsedRoute .value .packageName )
4335const version = computed (() => parsedRoute .value .version )
44- const filePath = computed (() => parsedRoute .value .filePath ?.replace (/ \/ $ / , ' ' ))
4536
4637const { data : pkg } = usePackage (packageName , version )
4738
4839const versionUrlPattern = computed (() => {
49- const base = ` /package-changes/${packageName .value }/v/{version} `
50- return filePath .value ? ` ${base }/${filePath .value } ` : base
40+ return ` /package-changes/${packageName .value }/v/{version} `
5141})
5242
5343const latestVersion = computed (() => {
@@ -57,16 +47,16 @@ const latestVersion = computed(() => {
5747 return pkg .value .versions [latestTag ] ?? null
5848})
5949
60- watch (
61- [version , () => latestVersion .value ?.version , packageName ],
62- ([v , latest , name ]) => {
63- if (! v && latest && name ) {
64- const pathSegments = [... name .split (' /' ), ' v' , latest ]
65- router . replace ({ name: ' changes' , params: { path: pathSegments as [string , ... string []] } })
66- }
67- },
68- { immediate: true },
69- )
50+ // watch(
51+ // [version, () => latestVersion.value?.version, packageName],
52+ // ([v, latest, name]) => {
53+ // if (!v && latest && name) {
54+ // const pathSegments = [...name.split('/'), 'v', latest]
55+ // navigateTo ({ name: 'changes', params: { path: pathSegments as [string, ...string[]] } })
56+ // }
57+ // },
58+ // { immediate: true },
59+ // )
7060
7161// getting info
7262const { data : changelog, pending } = usePackageChangelog (packageName , version )
0 commit comments