File size: 593 Bytes
b90b066 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /**
* Request validation middleware using Zod schemas.
* @module validateRequest
*/
import { Request, Response, NextFunction } from 'express';
import { ZodSchema } from 'zod';
import { ValidationError } from '../utils/errors.js';
export function validateBody<T>(schema: ZodSchema<T>) {
return (req: Request, _res: Response, next: NextFunction): void => {
const result = schema.safeParse(req.body);
if (!result.success) {
const message = result.error.errors.map((e) => e.message).join(', ');
next(new ValidationError(message));
return;
}
next();
};
}
|