From ccec0a37389a5245cbcea98b74c640fd8870cd78 Mon Sep 17 00:00:00 2001 From: Julien Huang <63512348+huang-julien@users.noreply.github.com> Date: Wed, 15 Jun 2022 13:53:31 +0200 Subject: [PATCH] feat(kit): allow `addServerHandler` to use method suffix of the file path (#5465) --- packages/kit/src/server.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/server.ts b/packages/kit/src/server.ts index d2c6a2047..ba2a031f1 100644 --- a/packages/kit/src/server.ts +++ b/packages/kit/src/server.ts @@ -9,6 +9,19 @@ export interface LegacyServerMiddleware { handler: Middleware | string } +/** + * normalize handler object + * + */ +function normalizeHandlerMethod (handler: NitroEventHandler) { + // retrieve method from handler file name + const [, method = undefined] = handler.handler.match(/\.(get|head|patch|post|put|delete|connect|options|trace)(\.\w+)*$/) || [] + return { + method, + ...handler + } +} + /** * Adds a new server middleware to the end of the server middleware array. * @@ -23,7 +36,7 @@ export function addServerMiddleware (middleware: LegacyServerMiddleware) { * */ export function addServerHandler (handler: NitroEventHandler) { - useNuxt().options.serverHandlers.push(handler) + useNuxt().options.serverHandlers.push(normalizeHandlerMethod(handler)) } /**