23 lines
850 B
JavaScript
23 lines
850 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.validate = validate;
|
|
const zod_1 = require("zod");
|
|
const error_handler_1 = require("./error-handler");
|
|
function validate(schema, source = 'body') {
|
|
return (req, _res, next) => {
|
|
try {
|
|
const data = schema.parse(req[source]);
|
|
req[source] = data;
|
|
next();
|
|
}
|
|
catch (err) {
|
|
if (err instanceof zod_1.ZodError) {
|
|
// Sanitize validation errors - only expose field count, not detailed messages
|
|
const fieldCount = err.errors.length;
|
|
throw new error_handler_1.AppError(400, `Invalid request data: ${fieldCount} field(s) failed validation`, 'VALIDATION_ERROR');
|
|
}
|
|
throw err;
|
|
}
|
|
};
|
|
}
|
|
//# sourceMappingURL=validate.js.map
|