@@ -20,7 +20,7 @@ import {
2020import { race } from '@/lib/async' ;
2121import { buildVersion } from '@/lib/build' ;
2222import { createContentSecurityPolicyNonce , getContentSecurityPolicy } from '@/lib/csp' ;
23- import { getURLLookupAlternatives , normalizeURL } from '@/lib/middleware' ;
23+ import { getURLLookupAlternatives , normalizeURL , setMiddlewareHeader } from '@/lib/middleware' ;
2424import {
2525 VisitorAuthCookieValue ,
2626 getVisitorAuthCookieName ,
@@ -253,14 +253,14 @@ export async function middleware(request: NextRequest) {
253253 resolved . cookies ,
254254 ) ;
255255
256- response . headers . set ( 'x-gitbook-version' , buildVersion ( ) ) ;
256+ setMiddlewareHeader ( response , 'x-gitbook-version' , buildVersion ( ) ) ;
257257
258258 // Add Content Security Policy header
259- response . headers . set ( 'content-security-policy' , csp ) ;
259+ setMiddlewareHeader ( response , 'content-security-policy' , csp ) ;
260260 // Basic security headers
261- response . headers . set ( 'strict-transport-security' , 'max-age=31536000' ) ;
262- response . headers . set ( 'referrer-policy' , 'no-referrer-when-downgrade' ) ;
263- response . headers . set ( 'x-content-type-options' , 'nosniff' ) ;
261+ setMiddlewareHeader ( response , 'strict-transport-security' , 'max-age=31536000' ) ;
262+ setMiddlewareHeader ( response , 'referrer-policy' , 'no-referrer-when-downgrade' ) ;
263+ setMiddlewareHeader ( response , 'x-content-type-options' , 'nosniff' ) ;
264264
265265 const isPrefetch = request . headers . has ( 'x-middleware-prefetch' ) ;
266266
@@ -273,28 +273,24 @@ export async function middleware(request: NextRequest) {
273273 // 'private, no-cache, no-store, max-age=0, must-revalidate',
274274 // );
275275 // } else {
276- if ( typeof resolved . cacheMaxAge === 'number' ) {
277- const cacheControl = `public, max-age=0, s-maxage=${ resolved . cacheMaxAge } , stale-if-error=0` ;
278-
279- if (
280- process . env . GITBOOK_OUTPUT_CACHE === 'true' &&
281- process . env . NODE_ENV !== 'development'
282- ) {
283- response . headers . set ( 'cache-control' , cacheControl ) ;
284- response . headers . set ( 'Cloudflare-CDN-Cache-Control' , cacheControl ) ;
285- } else {
286- response . headers . set ( 'x-gitbook-cache-control' , cacheControl ) ;
287- }
276+ if ( typeof resolved . cacheMaxAge === 'number' ) {
277+ const cacheControl = `public, max-age=0, s-maxage=${ resolved . cacheMaxAge } , stale-if-error=0` ;
278+
279+ if ( process . env . GITBOOK_OUTPUT_CACHE === 'true' && process . env . NODE_ENV !== 'development' ) {
280+ setMiddlewareHeader ( response , 'cache-control' , cacheControl ) ;
281+ setMiddlewareHeader ( response , 'Cloudflare-CDN-Cache-Control' , cacheControl ) ;
282+ } else {
283+ setMiddlewareHeader ( response , 'x-gitbook-cache-control' , cacheControl ) ;
288284 }
285+ }
289286 // }
290287
291288 if ( resolved . cacheTags && resolved . cacheTags . length > 0 ) {
292289 const headerCacheTag = resolved . cacheTags . join ( ',' ) ;
293- response . headers . set ( 'cache-tag' , headerCacheTag ) ;
294- response . headers . set ( 'x-gitbook-cache-tag' , headerCacheTag ) ;
290+ setMiddlewareHeader ( response , 'cache-tag' , headerCacheTag ) ;
291+ setMiddlewareHeader ( response , 'x-gitbook-cache-tag' , headerCacheTag ) ;
295292 }
296293
297- console . log ( 'headers end' , Array . from ( response . headers . entries ( ) ) ) ;
298294 return response ;
299295}
300296
0 commit comments