Skip to content

Commit

Permalink
chore(perf): leverage ISR instead for query caching
Browse files Browse the repository at this point in the history
  • Loading branch information
Atinux committed Dec 20, 2023
1 parent f33f5a2 commit dee73c6
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
6 changes: 6 additions & 0 deletions src/module.ts
Expand Up @@ -416,6 +416,12 @@ export default defineNuxtModule<ModuleOptions>({
nitroConfig.prerender.routes = nitroConfig.prerender.routes || []
nitroConfig.handlers = nitroConfig.handlers || []

// Performance: Add ISR for API routes
if (!nuxt.options.dev && !nuxt.options._prepare) {
nuxt.options.routeRules = {}
nuxt.options.routeRules[`${options.api.baseURL}/query/**`] = { isr: true }
}

// Add server handlers
nitroConfig.handlers.push(
{
Expand Down
7 changes: 2 additions & 5 deletions src/runtime/server/api/navigation.ts
Expand Up @@ -3,9 +3,9 @@ import { createNav } from '../navigation'
import type { ParsedContent, ParsedContentMeta } from '../../types'
import { getContentQuery } from '../../utils/query'
import { isPreview } from '../preview'
import { cachedEventHandler } from '#imports'
import { eventHandler } from '#imports'

export default cachedEventHandler(async (event) => {
export default eventHandler(async (event) => {
const query = getContentQuery(event)

// Read from cache if not preview and there is no query
Expand Down Expand Up @@ -50,7 +50,4 @@ export default cachedEventHandler(async (event) => {
}, {} as Record<string, ParsedContentMeta>)

return createNav((contents?.result || contents) as ParsedContentMeta[], configs)
}, {
maxAge: 31536000,
shouldBypassCache: () => !!import.meta.dev
})
7 changes: 2 additions & 5 deletions src/runtime/server/api/query.ts
@@ -1,9 +1,9 @@
import { createError } from 'h3'
import { serverQueryContent } from '../storage'
import { getContentQuery } from '../../utils/query'
import { useRuntimeConfig, cachedEventHandler } from '#imports'
import { useRuntimeConfig, eventHandler } from '#imports'

export default cachedEventHandler(async (event) => {
export default eventHandler(async (event) => {
const query = getContentQuery(event)
const { advanceQuery } = useRuntimeConfig().public.content.experimental

Expand Down Expand Up @@ -39,7 +39,4 @@ export default cachedEventHandler(async (event) => {
}

return serverQueryContent(event, query).find()
}, {
maxAge: 31536000,
shouldBypassCache: () => !!import.meta.dev
})

0 comments on commit dee73c6

Please sign in to comment.