diff --git a/.changeset/serious-worms-suffer.md b/.changeset/serious-worms-suffer.md new file mode 100644 index 0000000000..8e3952fe7e --- /dev/null +++ b/.changeset/serious-worms-suffer.md @@ -0,0 +1,5 @@ +--- +"@medusajs/framework": patch +--- + +fix: expand method ALL for bodyparser config and additional validator diff --git a/packages/core/framework/src/http/__fixtures__/routers-middleware/middlewares.ts b/packages/core/framework/src/http/__fixtures__/routers-middleware/middlewares.ts index 43bb62e219..c79a43099f 100644 --- a/packages/core/framework/src/http/__fixtures__/routers-middleware/middlewares.ts +++ b/packages/core/framework/src/http/__fixtures__/routers-middleware/middlewares.ts @@ -44,6 +44,14 @@ const middlewares = defineMiddlewares([ matcher: "/customers", middlewares: [customersGlobalMiddleware], }, + { + method: ["ALL"], + matcher: "/v1*", + bodyParser: { + sizeLimit: "500kb", + }, + middlewares: [], + }, { method: "POST", matcher: "/customers", diff --git a/packages/core/framework/src/http/__tests__/middleware-file-loader.spec.ts b/packages/core/framework/src/http/__tests__/middleware-file-loader.spec.ts index d0d480e02b..36670b26fe 100644 --- a/packages/core/framework/src/http/__tests__/middleware-file-loader.spec.ts +++ b/packages/core/framework/src/http/__tests__/middleware-file-loader.spec.ts @@ -9,6 +9,21 @@ describe("Middleware file loader", () => { expect(loader.getBodyParserConfigRoutes()).toMatchInlineSnapshot(` [ + { + "config": { + "sizeLimit": "500kb", + }, + "matcher": "/v1*", + "methods": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD", + ], + }, { "config": { "preserveRawBody": true, diff --git a/packages/core/framework/src/http/middleware-file-loader.ts b/packages/core/framework/src/http/middleware-file-loader.ts index f0ad17d3d1..18ba764b60 100644 --- a/packages/core/framework/src/http/middleware-file-loader.ts +++ b/packages/core/framework/src/http/middleware-file-loader.ts @@ -86,7 +86,10 @@ export class MiddlewareFileLoader { const matcher = String(route.matcher) if (route.bodyParser !== undefined) { - const methods = route.methods || [...HTTP_METHODS] + let methods = route.methods || [...HTTP_METHODS] + if (methods.includes("ALL")) { + methods = [...HTTP_METHODS] + } logger.debug( `using custom bodyparser config on matcher ${methods}:${route.matcher}` @@ -100,7 +103,10 @@ export class MiddlewareFileLoader { } if (route.additionalDataValidator !== undefined) { - const methods = route.methods || [...HTTP_METHODS] + let methods = route.methods || [...HTTP_METHODS] + if (methods.includes("ALL")) { + methods = [...HTTP_METHODS] + } logger.debug( `assigning additionalData validator on matcher ${methods}:${route.matcher}`