Skip to content

Commit d55986f

Browse files
fix: server routes handle per verb middlewares
fixes #4490
1 parent 5b94b9d commit d55986f

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

packages/start-server-core/src/createStartHandler.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,26 @@ async function handleServerRoutes(opts: {
375375

376376
if (method) {
377377
const handler = serverTreeResult.foundRoute.options.methods[method]
378-
379378
if (handler) {
380-
middlewares.push(handlerToMiddleware(handler) as TODO)
379+
if (typeof handler === 'function') {
380+
middlewares.push(handlerToMiddleware(handler) as TODO)
381+
} else {
382+
if (
383+
(handler as any)._options.middlewares &&
384+
(handler as any)._options.middlewares.length
385+
) {
386+
middlewares.push(
387+
...flattenMiddlewares(
388+
(handler as any)._options.middlewares,
389+
).map((d) => d.options.server),
390+
)
391+
}
392+
if ((handler as any)._options.handler) {
393+
middlewares.push(
394+
handlerToMiddleware((handler as any)._options.handler),
395+
)
396+
}
397+
}
381398
}
382399
}
383400
}

0 commit comments

Comments
 (0)