From 30ade9b7fff485dcd1a4239457fd7b978c93534a Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Tue, 15 Oct 2019 19:32:43 -0500 Subject: [PATCH] Fix SPR always revalidating in production --- packages/next/next-server/server/next-server.ts | 1 + packages/next/next-server/server/spr-cache.ts | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/next/next-server/server/next-server.ts b/packages/next/next-server/server/next-server.ts index dac09e2b3dabc..93c926a837889 100644 --- a/packages/next/next-server/server/next-server.ts +++ b/packages/next/next-server/server/next-server.ts @@ -594,6 +594,7 @@ export default class Server { // Complete the response with cached data if its present const cachedData = await getSprCache(sprCacheKey) + if (cachedData) { const data = isSprData ? JSON.stringify(cachedData.pageData) diff --git a/packages/next/next-server/server/spr-cache.ts b/packages/next/next-server/server/spr-cache.ts index 23be5b03aba80..c286978ca4c2c 100644 --- a/packages/next/next-server/server/spr-cache.ts +++ b/packages/next/next-server/server/spr-cache.ts @@ -35,7 +35,7 @@ export const calculateRevalidate = (pathname: string): number | false => { // in development we don't have a prerender-manifest // and default to always revalidating to allow easier debugging const curTime = new Date().getTime() - if (!sprOptions.dev) return curTime + if (sprOptions.dev) return curTime const { initialRevalidateSeconds } = prerenderManifest.routes[pathname] || { initialRevalidateSeconds: 1, @@ -157,9 +157,11 @@ export async function setSprCache( } pathname = normalizePagePath(pathname) + const revalidateAfter = calculateRevalidate(pathname) + cache.set(pathname, { ...data, - revalidateAfter: calculateRevalidate(pathname), + revalidateAfter, }) // TODO: This option needs to cease to exist unless it stops mutating the