diff --git a/nuxt.config.ts b/nuxt.config.ts index 5e191020..13d69398 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -144,6 +144,7 @@ export default defineNuxtConfig({ }, routeRules: { + '/api/sponsors': { prerender: true }, '/api/hi': { cors: true }, '/feed.xml': { redirect: '/rss.xml' }, '/thumbnail/**': { cache: { maxAge: 60 * 60 * 24 * 365 } }, diff --git a/server/api/sponsors.get.ts b/server/api/sponsors.get.ts index 265a2ebe..026cd5ab 100644 --- a/server/api/sponsors.get.ts +++ b/server/api/sponsors.get.ts @@ -1,6 +1,6 @@ import { getSponsors } from '../utils/sponsors' -export default defineCachedEventHandler( +export default defineEventHandler( async event => { if (import.meta.test) return [] @@ -9,5 +9,4 @@ export default defineCachedEventHandler( .map(s => s.avatarUrl?.replace(/(\?|%3Fu).*$/, '')) .filter((r): r is string => !!r) }, - { maxAge: 60 }, ) diff --git a/server/utils/sponsors.ts b/server/utils/sponsors.ts index c4d2eaa2..28d647c0 100644 --- a/server/utils/sponsors.ts +++ b/server/utils/sponsors.ts @@ -9,8 +9,6 @@ interface Sponsor { interface CacheEntry { value: Sponsor[] - expires: number - mtime: number } export async function getSponsors (event: H3Event): Promise { @@ -18,11 +16,7 @@ export async function getSponsors (event: H3Event): Promise { if (!token) return [] const entry: CacheEntry = ((await useStorage().getItem('sponsors')) as any) || {} - const ttl = 60 - entry.expires = Date.now() + ttl - - const expired = (Date.now() - (entry.mtime || 0)) > ttl - if (!entry.value || expired) { + if (!entry.value || !import.meta.dev) { entry.value = await query( token, sponsorQuery, @@ -38,7 +32,6 @@ export async function getSponsors (event: H3Event): Promise { avatarUrl: 'https://avatars.githubusercontent.com/u/62017400?v=4', }) - entry.mtime = Date.now() useStorage() .setItem('sponsors', entry) .catch((error: any) => console.error('[nitro] [cache]', error))