diff --git a/packages/middleware/CHANGELOG.md b/packages/middleware/CHANGELOG.md index fe94fc3152..99b9ec6834 100644 --- a/packages/middleware/CHANGELOG.md +++ b/packages/middleware/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log +## 3.7.0 + +### Minor Changes + +- 496bfb840: Hide error data from the response, now only the message will be exposed to the client. + ## 3.6.2 ### Patch Changes diff --git a/packages/middleware/__tests__/unit/errors/defaultErrorHandler.spec.ts b/packages/middleware/__tests__/unit/errors/defaultErrorHandler.spec.ts index 22fa8e4160..44cbc54c1d 100644 --- a/packages/middleware/__tests__/unit/errors/defaultErrorHandler.spec.ts +++ b/packages/middleware/__tests__/unit/errors/defaultErrorHandler.spec.ts @@ -15,7 +15,7 @@ describe("defaultErrorHandler", () => { defaultErrorHandler(error, mockReq as any, mockRes as any); expect(mockRes.status).toHaveBeenCalledWith(404); - expect(mockRes.send).toHaveBeenCalledWith(error); + expect(mockRes.send).toHaveBeenCalledWith({ message: error.message }); }); it("should send masked error for other error codes", () => { diff --git a/packages/middleware/package.json b/packages/middleware/package.json index 850d492ea8..3c6ceae40b 100644 --- a/packages/middleware/package.json +++ b/packages/middleware/package.json @@ -1,6 +1,6 @@ { "name": "@vue-storefront/middleware", - "version": "3.6.2", + "version": "3.7.0", "main": "lib/index.cjs.js", "module": "lib/index.es.js", "types": "lib/index.d.ts", diff --git a/packages/middleware/src/errors/defaultErrorHandler.ts b/packages/middleware/src/errors/defaultErrorHandler.ts index 7aab6d9ef1..f333e5ec38 100644 --- a/packages/middleware/src/errors/defaultErrorHandler.ts +++ b/packages/middleware/src/errors/defaultErrorHandler.ts @@ -2,6 +2,10 @@ import consola from "consola"; import type { Request, Response } from "express"; import { getAgnosticStatusCode } from "../helpers"; +type ClientSideError = { + message?: string; +}; + /** * Default error handler for the middleware * @@ -10,7 +14,7 @@ import { getAgnosticStatusCode } from "../helpers"; * @param res */ export const defaultErrorHandler = ( - error: unknown, + error: ClientSideError, req: Request, res: Response ) => { @@ -18,10 +22,12 @@ export const defaultErrorHandler = ( const status = getAgnosticStatusCode(error); res.status(status); if (status < 500) { + const errMsg = + error?.message ?? `Request faileds with status code ${status}`; /** * For all 4xx error codes or client error codes we wanted to send the error message */ - res.send(error); + res.send({ message: errMsg }); } else { /** * For all other error codes we wanted to send a generic error message