"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AppError = void 0; exports.errorHandler = errorHandler; exports.notFoundHandler = notFoundHandler; const zod_1 = require("zod"); class AppError extends Error { code; message; statusCode; details; constructor(code, message, statusCode = 500, details) { super(message); this.code = code; this.message = message; this.statusCode = statusCode; this.details = details; this.name = 'AppError'; } } exports.AppError = AppError; function errorHandler(err, req, res, next) { console.error('Error:', err); if (err instanceof zod_1.ZodError) { res.status(400).json({ error: { code: 'INVALID_PAYLOAD', message: 'Request validation failed', details: err.flatten().fieldErrors, }, }); return; } if (err instanceof AppError) { res.status(err.statusCode).json({ error: { code: err.code, message: err.message, details: err.details, }, }); return; } res.status(500).json({ error: { code: 'SERVER_ERROR', message: 'Internal server error', }, }); } function notFoundHandler(req, res) { res.status(404).json({ error: { code: 'NOT_FOUND', message: `Route ${req.method} ${req.path} not found`, }, }); } //# sourceMappingURL=errorHandler.js.map