@@ -130,8 +130,10 @@ function extractDynamicSegments(routePattern: string, path: string): RouteParam
130
130
return dynamicSegments
131
131
}
132
132
133
+ type CallbackWithStatus = Route [ 'callback' ] & { status : number }
134
+
133
135
async function execute ( foundRoute : Route , req : Request , { statusCode } : Options ) {
134
- const foundCallback = await route . resolveCallback ( foundRoute . callback )
136
+ const foundCallback : CallbackWithStatus = await route . resolveCallback ( foundRoute . callback )
135
137
136
138
const middlewarePayload = await executeMiddleware ( foundRoute )
137
139
@@ -142,9 +144,9 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
142
144
) {
143
145
const middlewareStatus = middlewarePayload . status
144
146
145
- delete middlewarePayload . status
147
+ const { status, ... payloadWithoutStatus } = middlewarePayload
146
148
147
- return await new Response ( JSON . stringify ( middlewarePayload ) , {
149
+ return await new Response ( JSON . stringify ( payloadWithoutStatus ) , {
148
150
headers : {
149
151
'Content-Type' : 'json' ,
150
152
'Access-Control-Allow-Origin' : '*' ,
@@ -219,9 +221,9 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
219
221
220
222
if ( isObject ( foundCallback ) && foundCallback . status ) {
221
223
if ( foundCallback . status === 401 ) {
222
- delete foundCallback . status
224
+ const { status, ... rest } = foundCallback
223
225
224
- return await new Response ( JSON . stringify ( foundCallback ) , {
226
+ return await new Response ( JSON . stringify ( rest ) , {
225
227
headers : {
226
228
'Content-Type' : 'json' ,
227
229
'Access-Control-Allow-Origin' : '*' ,
@@ -232,8 +234,9 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
232
234
}
233
235
234
236
if ( foundCallback . status === 403 ) {
235
- delete foundCallback . status
236
- return await new Response ( JSON . stringify ( foundCallback ) , {
237
+ const { status, ...rest } = foundCallback
238
+
239
+ return await new Response ( JSON . stringify ( rest ) , {
237
240
headers : {
238
241
'Content-Type' : 'json' ,
239
242
'Access-Control-Allow-Origin' : '*' ,
@@ -244,10 +247,9 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
244
247
}
245
248
246
249
if ( foundCallback . status === 422 ) {
247
- // biome-ignore lint/performance/noDelete: <explanation>
248
- delete foundCallback . status
250
+ const { status, ...rest } = foundCallback
249
251
250
- return await new Response ( JSON . stringify ( foundCallback ) , {
252
+ return await new Response ( JSON . stringify ( rest ) , {
251
253
headers : {
252
254
'Content-Type' : 'json' ,
253
255
'Access-Control-Allow-Origin' : '*' ,
@@ -258,13 +260,10 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
258
260
}
259
261
260
262
if ( foundCallback . status === 500 ) {
261
- delete foundCallback . status
262
- return await new Response ( JSON . stringify ( foundCallback ) , {
263
- headers : {
264
- 'Content-Type' : 'json' ,
265
- 'Access-Control-Allow-Origin' : '*' ,
266
- 'Access-Control-Allow-Headers' : '*' ,
267
- } ,
263
+ const { status, ...rest } = foundCallback
264
+
265
+ return await new Response ( JSON . stringify ( rest ) , {
266
+ headers : { 'Content-Type' : 'json' , 'Access-Control-Allow-Origin' : '*' , 'Access-Control-Allow-Headers' : '*' } ,
268
267
status : 500 ,
269
268
} )
270
269
}
0 commit comments