import { Request, Response, NextFunction } from 'express'; import { logger } from '../utils/logger'; export const errorHandler = ( err: Error, _req: Request, res: Response, _next: NextFunction ): void => { logger.error(err.message, { stack: err.stack }); if (err.name === 'ValidationError') { res.status(400).json({ error: err.message }); return; } if (err.name === 'CastError') { res.status(400).json({ error: 'Invalid ID format.' }); return; } if ((err as any).code === 11000) { res.status(409).json({ error: 'Duplicate entry. Resource already exists.' }); return; } res.status(500).json({ error: 'Internal server error.' }); };