diff --git a/src/api/middlewares/ErrorHandler.ts b/src/api/middlewares/ErrorHandler.ts
index cd306c9c..1a9a18a8 100644
--- a/src/api/middlewares/ErrorHandler.ts
+++ b/src/api/middlewares/ErrorHandler.ts
@@ -22,48 +22,48 @@ import { ApiError, FieldError } from "@spacebar/util";
const EntityNotFoundErrorRegex = /"(\w+)"/;
export function ErrorHandler(error: Error & { type?: string }, req: Request, res: Response, next: NextFunction) {
- if (!error) return next();
+ if (!error) return next();
- try {
- let code = 400;
- let httpcode = code;
- let message = error?.toString();
- let errors = undefined;
- let _ajvErrors = undefined;
+ try {
+ let code = 400;
+ let httpcode = code;
+ let message = error?.toString();
+ let errors = undefined;
+ let _ajvErrors = undefined;
- if (error instanceof HTTPError && error.code) code = httpcode = error.code;
- else if (error instanceof ApiError) {
- code = error.code;
- message = error.message;
- httpcode = error.httpStatus;
- } else if (error.name === "EntityNotFoundError") {
- message = `${error.message.match(EntityNotFoundErrorRegex)?.[1] || "Item"} could not be found`;
- code = httpcode = 404;
- } else if (error instanceof FieldError) {
- code = Number(error.code);
- message = error.message;
- errors = error.errors;
- _ajvErrors = error._ajvErrors;
- } else if (error?.type == "entity.parse.failed") {
- // body-parser failed
- httpcode = 400;
- code = 50109;
- message = "The request body contains invalid JSON.";
- } else {
- console.error(`[Error] ${code} ${req.url}\n`, errors || error, "\nbody:", req.body);
+ if (error instanceof HTTPError && error.code) code = httpcode = error.code;
+ else if (error instanceof ApiError) {
+ code = error.code;
+ message = error.message;
+ httpcode = error.httpStatus;
+ } else if (error.name === "EntityNotFoundError") {
+ message = `${error.message.match(EntityNotFoundErrorRegex)?.[1] || "Item"} could not be found`;
+ code = httpcode = 404;
+ } else if (error instanceof FieldError) {
+ code = Number(error.code);
+ message = error.message;
+ errors = error.errors;
+ _ajvErrors = error._ajvErrors;
+ } else if (error?.type == "entity.parse.failed") {
+ // body-parser failed
+ httpcode = 400;
+ code = 50109;
+ message = "The request body contains invalid JSON.";
+ } else {
+ console.error(`[Error] ${code} ${req.url}\n`, errors || error, "\nbody:", req.body);
- if (req.server?.options?.production) {
- // don't expose internal errors to the user, instead human errors should be thrown as HTTPError
- message = "Internal Server Error";
- }
- code = httpcode = 500;
- }
+ if (req.server?.options?.production) {
+ // don't expose internal errors to the user, instead human errors should be thrown as HTTPError
+ message = "Internal Server Error";
+ }
+ code = httpcode = 500;
+ }
- if (httpcode > 511) httpcode = 400;
+ if (httpcode > 511) httpcode = 400;
- res.status(httpcode).json({ code: code, message, errors, _ajvErrors });
- } catch (error) {
- console.error(`[Internal Server Error] 500`, error);
- return res.status(500).json({ code: 500, message: "Internal Server Error" });
- }
+ res.status(httpcode).json({ code: code, message, errors, _ajvErrors });
+ } catch (error) {
+ console.error(`[Internal Server Error] 500`, error);
+ return res.status(500).json({ code: 500, message: "Internal Server Error" });
+ }
}
|