From 4c04aa45aac3d0ae63bf524bdee8540dec73f553 Mon Sep 17 00:00:00 2001 From: Connor Pearson Date: Wed, 10 Jul 2024 15:40:26 +0200 Subject: [PATCH] fix(cache): respect staleMaxAge option --- src/runtime/internal/cache.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/runtime/internal/cache.ts b/src/runtime/internal/cache.ts index f848b82c79..c04675f2d9 100644 --- a/src/runtime/internal/cache.ts +++ b/src/runtime/internal/cache.ts @@ -145,7 +145,13 @@ export function defineCachedFunction( event.waitUntil(_resolvePromise); } - if (opts.swr && validate(entry) !== false) { + const staleTtl = (opts.staleMaxAge ?? 0) * 1000; + const staleExpired = + shouldInvalidateCache || + entry.integrity !== integrity || + (staleTtl && Date.now() - (entry.mtime || 0) > staleTtl) || + validate(entry) === false; + if (opts.swr && !staleExpired) { _resolvePromise.catch((error) => { console.error(`[cache] SWR handler error.`, error); useNitroApp().captureError(error, { event, tags: ["cache"] });