@@ -127,7 +127,6 @@ type HandleRoute = {
127
127
url : URL ;
128
128
pathname : string ;
129
129
body : ArrayBuffer | undefined ;
130
- origin : string ;
131
130
manifestData : ManifestData ;
132
131
incomingRequest : http . IncomingMessage ;
133
132
incomingResponse : http . ServerResponse ;
@@ -139,7 +138,6 @@ export async function handleRoute({
139
138
url,
140
139
pathname,
141
140
body,
142
- origin,
143
141
pipeline,
144
142
manifestData,
145
143
incomingRequest,
@@ -156,12 +154,10 @@ export async function handleRoute({
156
154
let request : Request ;
157
155
let renderContext : RenderContext ;
158
156
let mod : ComponentInstance | undefined = undefined ;
159
- let options : SSROptions | undefined = undefined ;
160
157
let route : RouteData ;
161
158
const middleware = ( await loadMiddleware ( loader ) ) . onRequest ;
162
159
const locals = Reflect . get ( incomingRequest , clientLocalsSymbol ) ;
163
160
164
- const filePath : URL | undefined = matchedRoute . filePath ;
165
161
const { preloadedComponent } = matchedRoute ;
166
162
route = matchedRoute . route ;
167
163
// Allows adapters to pass in locals in dev mode.
@@ -181,15 +177,6 @@ export async function handleRoute({
181
177
if ( value ) incomingResponse . setHeader ( name , value ) ;
182
178
}
183
179
184
- options = {
185
- pipeline,
186
- filePath,
187
- preload : preloadedComponent ,
188
- pathname,
189
- request,
190
- route,
191
- } ;
192
-
193
180
mod = preloadedComponent ;
194
181
195
182
renderContext = await RenderContext . create ( {
@@ -248,18 +235,17 @@ export async function handleRoute({
248
235
249
236
if ( statusCode === 404 && response . headers . get ( REROUTE_DIRECTIVE_HEADER ) !== 'no' ) {
250
237
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,
258
241
pipeline,
259
- manifestData,
260
- incomingRequest,
261
- incomingResponse,
242
+ pathname,
243
+ middleware : isDefaultPrerendered404 ( fourOhFourRoute . route ) ? undefined : middleware ,
244
+ request,
245
+ routeData : fourOhFourRoute . route ,
262
246
} ) ;
247
+ response = await renderContext . render ( fourOhFourRoute . preloadedComponent ) ;
248
+ }
263
249
}
264
250
265
251
// We remove the internally-used header before we send the response to the user agent.
0 commit comments