@@ -127,7 +127,6 @@ type HandleRoute = {
127127 url : URL ;
128128 pathname : string ;
129129 body : ArrayBuffer | undefined ;
130- origin : string ;
131130 manifestData : ManifestData ;
132131 incomingRequest : http . IncomingMessage ;
133132 incomingResponse : http . ServerResponse ;
@@ -139,7 +138,6 @@ export async function handleRoute({
139138 url,
140139 pathname,
141140 body,
142- origin,
143141 pipeline,
144142 manifestData,
145143 incomingRequest,
@@ -156,12 +154,10 @@ export async function handleRoute({
156154 let request : Request ;
157155 let renderContext : RenderContext ;
158156 let mod : ComponentInstance | undefined = undefined ;
159- let options : SSROptions | undefined = undefined ;
160157 let route : RouteData ;
161158 const middleware = ( await loadMiddleware ( loader ) ) . onRequest ;
162159 const locals = Reflect . get ( incomingRequest , clientLocalsSymbol ) ;
163160
164- const filePath : URL | undefined = matchedRoute . filePath ;
165161 const { preloadedComponent } = matchedRoute ;
166162 route = matchedRoute . route ;
167163 // Allows adapters to pass in locals in dev mode.
@@ -181,15 +177,6 @@ export async function handleRoute({
181177 if ( value ) incomingResponse . setHeader ( name , value ) ;
182178 }
183179
184- options = {
185- pipeline,
186- filePath,
187- preload : preloadedComponent ,
188- pathname,
189- request,
190- route,
191- } ;
192-
193180 mod = preloadedComponent ;
194181
195182 renderContext = await RenderContext . create ( {
@@ -248,18 +235,17 @@ export async function handleRoute({
248235
249236 if ( statusCode === 404 && response . headers . get ( REROUTE_DIRECTIVE_HEADER ) !== 'no' ) {
250237 const fourOhFourRoute = await matchRoute ( '/404' , manifestData , pipeline ) ;
251- if ( options && options . route !== fourOhFourRoute ?. route )
252- return handleRoute ( {
253- ...options ,
254- matchedRoute : fourOhFourRoute ,
255- url : new URL ( pathname , url ) ,
256- body,
257- origin,
238+ if ( fourOhFourRoute ) {
239+ renderContext = await RenderContext . create ( {
240+ locals,
258241 pipeline,
259- manifestData,
260- incomingRequest,
261- incomingResponse,
242+ pathname,
243+ middleware : isDefaultPrerendered404 ( fourOhFourRoute . route ) ? undefined : middleware ,
244+ request,
245+ routeData : fourOhFourRoute . route ,
262246 } ) ;
247+ response = await renderContext . render ( fourOhFourRoute . preloadedComponent ) ;
248+ }
263249 }
264250
265251 // We remove the internally-used header before we send the response to the user agent.
0 commit comments