Skip to content

Commit 3a2b423

Browse files
authored
fix: update isr configuration for package pages (npmx-dev#1604)
1 parent 9af9734 commit 3a2b423

3 files changed

Lines changed: 14 additions & 24 deletions

File tree

app/composables/npm/useResolvedVersion.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@ export function useResolvedVersion(
44
packageName: MaybeRefOrGetter<string>,
55
requestedVersion: MaybeRefOrGetter<string | null>,
66
) {
7-
return useFetch(
8-
() => {
7+
return useAsyncData(
8+
() => `resolved-version:${toValue(packageName)}:${toValue(requestedVersion) ?? 'latest'}`,
9+
async () => {
910
const version = toValue(requestedVersion)
10-
return version
11-
? `https://npm.antfu.dev/${toValue(packageName)}@${version}`
12-
: `https://npm.antfu.dev/${toValue(packageName)}`
13-
},
14-
{
15-
transform: (data: ResolvedPackageVersion) => data.version,
11+
const name = toValue(packageName)
12+
const url = version
13+
? `https://npm.antfu.dev/${name}@${version}`
14+
: `https://npm.antfu.dev/${name}`
15+
const data = await $fetch<ResolvedPackageVersion>(url)
16+
return data.version
1617
},
18+
{ default: () => null },
1719
)
1820
}

app/pages/package/[[org]]/[name].vue

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -195,18 +195,9 @@ const { data: skillsData } = useLazyFetch<SkillsListResponse>(
195195
const { data: packageAnalysis } = usePackageAnalysis(packageName, requestedVersion)
196196
const { data: moduleReplacement } = useModuleReplacement(packageName)
197197
198-
const {
199-
data: resolvedVersion,
200-
status: versionStatus,
201-
error: versionError,
202-
} = await useResolvedVersion(packageName, requestedVersion)
203-
204-
if (
205-
versionStatus.value === 'error' &&
206-
versionError.value?.statusCode &&
207-
versionError.value.statusCode >= 400 &&
208-
versionError.value.statusCode < 500
209-
) {
198+
const { data: resolvedVersion } = await useResolvedVersion(packageName, requestedVersion)
199+
200+
if (resolvedVersion.value === null) {
210201
throw createError({
211202
statusCode: 404,
212203
statusMessage: $t('package.not_found'),

nuxt.config.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,13 +135,10 @@ export default defineNuxtConfig({
135135
},
136136
},
137137
// pages
138-
'/package/:name': getISRConfig(60, { fallback: 'html' }),
138+
'/package/**': getISRConfig(60, { fallback: 'html' }),
139139
'/package/:name/_payload.json': getISRConfig(60, { fallback: 'json' }),
140-
'/package/:name/v/:version': getISRConfig(60, { fallback: 'html' }),
141140
'/package/:name/v/:version/_payload.json': getISRConfig(60, { fallback: 'json' }),
142-
'/package/:org/:name': getISRConfig(60, { fallback: 'html' }),
143141
'/package/:org/:name/_payload.json': getISRConfig(60, { fallback: 'json' }),
144-
'/package/:org/:name/v/:version': getISRConfig(60, { fallback: 'html' }),
145142
'/package/:org/:name/v/:version/_payload.json': getISRConfig(60, { fallback: 'json' }),
146143
// infinite cache (versioned - doesn't change)
147144
'/package-code/**': { isr: true, cache: { maxAge: 365 * 24 * 60 * 60 } },

0 commit comments

Comments
 (0)