Skip to content

Commit 7decbcd

Browse files
committed
perf: lengthen cache
1 parent ccf60bc commit 7decbcd

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

server/middleware/canonical-redirects.global.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ const pages = [
2323
'/search',
2424
'/settings',
2525
]
26+
27+
const cacheControl = 's-maxage=3600, stale-while-revalidate=36000'
28+
2629
export default defineEventHandler(async event => {
2730
const routeRules = getRouteRules(event)
2831
if (Object.keys(routeRules).length > 1) {
@@ -44,8 +47,8 @@ export default defineEventHandler(async event => {
4447
let pkgMatch = path.match(/^\/(?:(?<org>@[^/]+)\/)?(?<name>[^/@]+)$/)
4548
if (pkgMatch?.groups) {
4649
const args = [pkgMatch.groups.org, pkgMatch.groups.name].filter(Boolean).join('/')
47-
setHeader(event, 'cache-control', 'stale-while-revalidate=31536000, public')
48-
return sendRedirect(event, `/package/${args}`)
50+
setHeader(event, 'cache-control', cacheControl)
51+
return sendRedirect(event, `/package/${args}`, 301)
4952
}
5053

5154
// /@org/pkg/v/version or /@org/pkg@version → /package/org/pkg/v/version
@@ -56,14 +59,14 @@ export default defineEventHandler(async event => {
5659

5760
if (pkgVersionMatch?.groups) {
5861
const args = [pkgVersionMatch.groups.org, pkgVersionMatch.groups.name].filter(Boolean).join('/')
59-
setHeader(event, 'cache-control', 'stale-while-revalidate=31536000, public')
62+
setHeader(event, 'cache-control', cacheControl)
6063
return sendRedirect(event, `/package/${args}/v/${pkgVersionMatch.groups.version}`)
6164
}
6265

6366
// /@org → /org/org
6467
const orgMatch = path.match(/^\/@(?<org>[^/]+)$/)
6568
if (orgMatch?.groups) {
66-
setHeader(event, 'cache-control', 'stale-while-revalidate=31536000, public')
69+
setHeader(event, 'cache-control', cacheControl)
6770
return sendRedirect(event, `/org/${orgMatch.groups.org}`)
6871
}
6972
})

0 commit comments

Comments
 (0)