@@ -2779,56 +2779,59 @@ export default abstract class Server<
2779
2779
return null
2780
2780
}
2781
2781
2782
- if ( isPagesRouteModule ( routeModule ) ) {
2783
- const request = isNodeNextRequest ( req ) ? req . originalRequest : req
2782
+ const request = isNodeNextRequest ( req ) ? req . originalRequest : req
2783
+ const response = isNodeNextResponse ( res ) ? res . originalResponse : res
2784
2784
2785
- const response = isNodeNextResponse ( res )
2786
- ? res . originalResponse
2787
- : res
2788
-
2789
- if (
2790
- components . ComponentMod . handler &&
2791
- process . env . NEXT_RUNTIME !== 'edge'
2792
- ) {
2793
- const parsedInitUrl = parseUrl (
2794
- getRequestMeta ( req , 'initURL' ) || req . url
2795
- )
2796
- request . url =
2797
- req . url = `${ parsedInitUrl . pathname } ${ parsedInitUrl . search || '' } `
2798
-
2799
- // propagate the request context for dev
2800
- setRequestMeta ( request , getRequestMeta ( req ) )
2801
- addRequestMeta ( request , 'projectDir' , this . dir )
2802
- addRequestMeta ( request , 'isIsrFallback' , pagesFallback )
2803
- addRequestMeta ( request , 'query' , query )
2804
- addRequestMeta ( request , 'params' , opts . params )
2805
- addRequestMeta (
2806
- request ,
2807
- 'ampValidator' ,
2808
- this . renderOpts . ampValidator
2809
- )
2785
+ if (
2786
+ components . ComponentMod . handler &&
2787
+ process . env . NEXT_RUNTIME !== 'edge'
2788
+ ) {
2789
+ const parsedInitUrl = parseUrl (
2790
+ getRequestMeta ( req , 'initURL' ) || req . url
2791
+ )
2792
+ request . url =
2793
+ req . url = `${ parsedInitUrl . pathname } ${ parsedInitUrl . search || '' } `
2794
+
2795
+ // propagate the request context for dev
2796
+ setRequestMeta ( request , getRequestMeta ( req ) )
2797
+ addRequestMeta ( request , 'postponed' , postponed )
2798
+ addRequestMeta ( request , 'projectDir' , this . dir )
2799
+ addRequestMeta ( request , 'isIsrFallback' , pagesFallback )
2800
+ addRequestMeta (
2801
+ request ,
2802
+ 'renderFallbackShell' ,
2803
+ Boolean ( fallbackRouteParams )
2804
+ )
2805
+ addRequestMeta ( request , 'query' , query )
2806
+ addRequestMeta ( request , 'params' , opts . params )
2807
+ addRequestMeta (
2808
+ request ,
2809
+ 'ampValidator' ,
2810
+ this . renderOpts . ampValidator
2811
+ )
2810
2812
2811
- if ( renderOpts . err ) {
2812
- addRequestMeta ( request , 'invokeError' , renderOpts . err )
2813
+ if ( renderOpts . err ) {
2814
+ addRequestMeta ( request , 'invokeError' , renderOpts . err )
2815
+ }
2816
+ const handler : (
2817
+ req : ServerRequest | IncomingMessage ,
2818
+ res : ServerResponse | HTTPServerResponse ,
2819
+ ctx : {
2820
+ waitUntil : ReturnType < Server [ 'getWaitUntil' ] >
2813
2821
}
2814
- const handler : (
2815
- req : ServerRequest | IncomingMessage ,
2816
- res : ServerResponse | HTTPServerResponse ,
2817
- ctx : {
2818
- waitUntil : ReturnType < Server [ 'getWaitUntil' ] >
2819
- }
2820
- ) => Promise < RenderResult > = components . ComponentMod . handler
2822
+ ) => Promise < RenderResult > = components . ComponentMod . handler
2821
2823
2822
- result = await handler ( request , response , {
2823
- waitUntil : this . getWaitUntil ( ) ,
2824
- } )
2824
+ result = await handler ( request , response , {
2825
+ waitUntil : this . getWaitUntil ( ) ,
2826
+ } )
2825
2827
2826
- if ( ! result ) {
2827
- throw new Error (
2828
- `Invariant: missing result from invoking ${ pathname } handler`
2829
- )
2830
- }
2831
- } else {
2828
+ if ( ! result ) {
2829
+ throw new Error (
2830
+ `Invariant: missing result from invoking ${ pathname } handler`
2831
+ )
2832
+ }
2833
+ } else {
2834
+ if ( isPagesRouteModule ( routeModule ) ) {
2832
2835
// Due to the way we pass data by mutating `renderOpts`, we can't extend
2833
2836
// the object here but only updating its `clientReferenceManifest` and
2834
2837
// `nextFontManifest` properties.
@@ -2875,48 +2878,48 @@ export default abstract class Server<
2875
2878
} )
2876
2879
throw err
2877
2880
}
2878
- }
2879
- } else {
2880
- const module = components . routeModule as AppPageRouteModule
2881
-
2882
- // Due to the way we pass data by mutating `renderOpts`, we can't extend the
2883
- // object here but only updating its `nextFontManifest` field.
2884
- // https://github.com/vercel/next.js/blob/df7cbd904c3bd85f399d1ce90680c0ecf92d2752/packages/next/server/render.tsx#L947-L952
2885
- renderOpts . nextFontManifest = this . nextFontManifest
2886
-
2887
- const context : AppPageRouteHandlerContext = {
2888
- page : is404Page ? '/404' : pathname ,
2889
- params : opts . params ,
2890
- query,
2891
- fallbackRouteParams,
2892
- renderOpts,
2893
- serverComponentsHmrCache : this . getServerComponentsHmrCache ( ) ,
2894
- sharedContext : {
2895
- buildId : this . buildId ,
2896
- } ,
2897
- }
2881
+ } else {
2882
+ const module = components . routeModule as AppPageRouteModule
2898
2883
2899
- // TODO: adapt for putting the RDC inside the postponed data
2900
- // If we're in dev, and this isn't a prefetch or a server action,
2901
- // we should seed the resume data cache.
2902
- if (
2903
- this . nextConfig . experimental . dynamicIO &&
2904
- this . renderOpts . dev &&
2905
- ! isPrefetchRSCRequest &&
2906
- ! isPossibleServerAction
2907
- ) {
2908
- const warmup = await module . warmup ( req , res , context )
2884
+ // Due to the way we pass data by mutating `renderOpts`, we can't extend the
2885
+ // object here but only updating its `nextFontManifest` field.
2886
+ // https://github.com/vercel/next.js/blob/df7cbd904c3bd85f399d1ce90680c0ecf92d2752/packages/next/server/render.tsx#L947-L952
2887
+ renderOpts . nextFontManifest = this . nextFontManifest
2909
2888
2910
- // If the warmup is successful, we should use the resume data
2911
- // cache from the warmup.
2912
- if ( warmup . metadata . devRenderResumeDataCache ) {
2913
- renderOpts . devRenderResumeDataCache =
2914
- warmup . metadata . devRenderResumeDataCache
2889
+ const context : AppPageRouteHandlerContext = {
2890
+ page : is404Page ? '/404' : pathname ,
2891
+ params : opts . params ,
2892
+ query,
2893
+ fallbackRouteParams,
2894
+ renderOpts,
2895
+ serverComponentsHmrCache : this . getServerComponentsHmrCache ( ) ,
2896
+ sharedContext : {
2897
+ buildId : this . buildId ,
2898
+ } ,
2915
2899
}
2916
- }
2917
2900
2918
- // Call the built-in render method on the module.
2919
- result = await module . render ( req , res , context )
2901
+ // TODO: adapt for putting the RDC inside the postponed data
2902
+ // If we're in dev, and this isn't a prefetch or a server action,
2903
+ // we should seed the resume data cache.
2904
+ if (
2905
+ this . nextConfig . experimental . dynamicIO &&
2906
+ this . renderOpts . dev &&
2907
+ ! isPrefetchRSCRequest &&
2908
+ ! isPossibleServerAction
2909
+ ) {
2910
+ const warmup = await module . warmup ( req , res , context )
2911
+
2912
+ // If the warmup is successful, we should use the resume data
2913
+ // cache from the warmup.
2914
+ if ( warmup . metadata . devRenderResumeDataCache ) {
2915
+ renderOpts . devRenderResumeDataCache =
2916
+ warmup . metadata . devRenderResumeDataCache
2917
+ }
2918
+ }
2919
+
2920
+ // Call the built-in render method on the module.
2921
+ result = await module . render ( req , res , context )
2922
+ }
2920
2923
}
2921
2924
} else {
2922
2925
throw new Error ( 'Invariant: Unknown route module type' )
@@ -3205,7 +3208,7 @@ export default abstract class Server<
3205
3208
postponed : undefined ,
3206
3209
pagesFallback : undefined ,
3207
3210
fallbackRouteParams :
3208
- // If we're in production of we're debugging the fallback
3211
+ // If we're in production or we're debugging the fallback
3209
3212
// shell then we should postpone when dynamic params are
3210
3213
// accessed.
3211
3214
isProduction || isDebugFallbackShell
0 commit comments