From 9618ffe05feb13a0e7214c2095be97425fec62ef Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 7 Nov 2022 12:42:26 -0800 Subject: [PATCH] [next] Update rsc header handling (#8862) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Related Issues Required for https://github.com/vercel/next.js/pull/42482 ### 📋 Checklist #### Tests - [ ] The code changed/added as part of this PR has been covered with tests - [ ] All tests pass locally with `yarn test-unit` #### Code Review - [ ] This PR has a concise title and thorough description useful to a reviewer - [ ] Issue from task tracker has a link to this PR --- packages/next/src/server-build.ts | 6 ++++-- packages/next/src/utils.ts | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/next/src/server-build.ts b/packages/next/src/server-build.ts index 590a327b920..5fd88e9b63c 100644 --- a/packages/next/src/server-build.ts +++ b/packages/next/src/server-build.ts @@ -1137,6 +1137,8 @@ export async function serverBuild({ } } + const rscHeader = routesManifest.rsc?.header || '__rsc__'; + return { wildcard: wildcardConfig, images: @@ -1390,7 +1392,7 @@ export async function serverBuild({ has: [ { type: 'header', - key: '__rsc__', + key: rscHeader, }, ], dest: path.posix.join('/', entryDirectory, '/index.rsc'), @@ -1401,7 +1403,7 @@ export async function serverBuild({ has: [ { type: 'header', - key: '__rsc__', + key: rscHeader, }, ], dest: path.posix.join('/', entryDirectory, '/$1.rsc'), diff --git a/packages/next/src/utils.ts b/packages/next/src/utils.ts index c8a43b7906e..c1553fcf437 100644 --- a/packages/next/src/utils.ts +++ b/packages/next/src/utils.ts @@ -209,6 +209,10 @@ type RoutesManifestOld = { defaultLocale: string; }>; }; + rsc?: { + header: string; + varyHeader: string; + }; }; type RoutesManifestV4 = Omit & { @@ -1991,6 +1995,9 @@ export const onPrerenderRoute = allowQuery = []; } } + const rscVaryHeader = + routesManifest?.rsc?.varyHeader || + '__rsc__, __next_router_state_tree__, __next_router_prefetch__'; prerenders[outputPathPage] = new Prerender({ expiration: initialRevalidate, @@ -2008,7 +2015,7 @@ export const onPrerenderRoute = ...(isAppPathRoute ? { initialHeaders: { - vary: '__rsc__, __next_router_state_tree__, __next_router_prefetch__', + vary: rscVaryHeader, }, } : {}), @@ -2031,7 +2038,7 @@ export const onPrerenderRoute = ? { initialHeaders: { 'content-type': 'application/octet-stream', - vary: '__rsc__, __next_router_state_tree__, __next_router_prefetch__', + vary: rscVaryHeader, }, } : {}),