Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 7x 7x 7x 1x 203x 82x 82x 81x 1x 1x | import { Request, Response, NextFunction } from 'express';
import { ZodError, ZodSchema } from 'zod';
import { ResponseHandler } from '@/utils/responseHandler';
function parseZodErrors(errors: ZodError) {
return errors.errors.map((err) => `${err.path.join(', ')}: ${err.message}`);
}
export function validate(schema: ZodSchema) {
return (req: Request, res: Response, next: NextFunction) => {
try {
schema.parse(req.body);
next();
} catch (error: any) {
const resBody = ResponseHandler.InvalidBody({
message: 'Validation Error',
errors: parseZodErrors(error),
});
res.status(resBody.error!.code).json(resBody);
}
};
}
|