diff --git a/docs/content/1.guide/1.introduction/5.cache.md b/docs/content/1.guide/1.introduction/5.cache.md index eb75aa541c..42394b6d2e 100644 --- a/docs/content/1.guide/1.introduction/5.cache.md +++ b/docs/content/1.guide/1.introduction/5.cache.md @@ -11,13 +11,13 @@ const cachedFn = cachedEventHandler(fn, options) ### Options -- `name`: Handler name. It will be guessed from function name if not provided and fallback to `_` otherwise. -- `group`: Part of cache name. Useful to organize cache storage. -- `getKey`: A function that accepts same arguments of normal function and should generate cache key. If not provided, a built-in hash function will be used. -- `integrity`: A value that changing it, will invalidate all caches for function. By default will be computed from **function code**. -- `maxAge`: Maximum age that cache is valid in seconds. Default is `1` second. -- `swr`: Enable Stale-While-Revalidate behavior. Enabled by default. - +* `name`: Handler name. It will be guessed from function name if not provided and fallback to `_` otherwise. +* `group`: Part of cache name. Useful to organize cache storage. +* `getKey`: A function that accepts same arguments of normal function and should generate cache key. If not provided, a built-in hash function will be used. +* `integrity`: A value that changing it, will invalidate all caches for function. By default will be computed from **function code**. +* `maxAge`: Maximum age that cache is valid in seconds. Default is `1` second. +* `swr`: Enable Stale-While-Revalidate behavior. Enabled by default. +* `shouldInvalidateCache`: A function that returns a boolean to invalidate the current cache and create a new one. ## Examples @@ -26,9 +26,11 @@ const cachedFn = cachedEventHandler(fn, options) ```js // routes/cached.ts const myFn = cachedEventHandler(async () => { - new Promise(resolve => setTimeout(resolve, 1000)) - return `Response generated at ${new Date().toISOString()}` -}, { swr: true }) + new Promise(resolve => setTimeout(resolve, 1000)) + return `Response generated at ${new Date().toISOString()}` +}, { + swr: true +}) ``` **Example:** Cache a utility function @@ -36,21 +38,26 @@ const myFn = cachedEventHandler(async () => { ```js // utils/index.ts const myFn = cachedFunction(async () => { - new Promise(resolve => setTimeout(resolve, 1000)) - return Math.random() -}, { swr: true }) + new Promise(resolve => setTimeout(resolve, 1000)) + return Math.random() +}, { + swr: true +}) ``` - **Example:** Enable Cache on a group of routes (**🧪 Experimental!**) ```js // nitro.config.ts -import { defineNitroConfig } from 'nitropack' +import { + defineNitroConfig +} from 'nitropack' export default defineNitroConfig({ - routeRules: { - '/blog/**': { swr: true } - } + routeRules: { + '/blog/**': { + swr: true + } + } }) ```