2024-10-01 20:48:03 -04:00
|
|
|
import { ErrorRequestHandler, NextFunction, Response } from "express";
|
|
|
|
import ErrorResponse from "@server/types/ErrorResponse";
|
|
|
|
import HttpCode from "@server/types/HttpCode";
|
|
|
|
import logger from "@server/logger";
|
2024-10-12 18:21:31 -04:00
|
|
|
import config from "@server/config";
|
2024-10-01 20:48:03 -04:00
|
|
|
|
|
|
|
export const errorHandlerMiddleware: ErrorRequestHandler = (
|
|
|
|
error,
|
|
|
|
req,
|
|
|
|
res: Response<ErrorResponse>,
|
|
|
|
next: NextFunction,
|
|
|
|
) => {
|
|
|
|
const statusCode = error.statusCode || HttpCode.INTERNAL_SERVER_ERROR;
|
2024-10-12 18:21:31 -04:00
|
|
|
if (config.app.environment !== "prod") {
|
2024-10-04 23:14:40 -04:00
|
|
|
logger.error(error);
|
|
|
|
}
|
2024-10-01 20:48:03 -04:00
|
|
|
res?.status(statusCode).send({
|
|
|
|
data: null,
|
|
|
|
success: false,
|
|
|
|
error: true,
|
|
|
|
message: error.message || "Internal Server Error",
|
|
|
|
status: statusCode,
|
2024-10-12 18:21:31 -04:00
|
|
|
stack: config.app.environment === "prod" ? null : error.stack,
|
2024-10-01 20:48:03 -04:00
|
|
|
});
|
|
|
|
};
|