Files
HoruxDespachos/apps/api/src/middlewares/error.middleware.ts
2026-04-27 22:09:36 -06:00

34 lines
684 B
TypeScript

import type { Request, Response, NextFunction } from 'express';
export class AppError extends Error {
constructor(
public statusCode: number,
public message: string,
public isOperational = true
) {
super(message);
Object.setPrototypeOf(this, AppError.prototype);
}
}
export function errorMiddleware(
err: Error,
req: Request,
res: Response,
next: NextFunction
) {
if (err instanceof AppError) {
return res.status(err.statusCode).json({
status: 'error',
message: err.message,
});
}
console.error('Unhandled error:', err);
return res.status(500).json({
status: 'error',
message: 'Internal server error',
});
}