ValidationError
Исключение, которое бросают parse и parseAsync, если данные невалидны. Наследуется от Error.
Сигнатура
ts
class ValidationError extends Error {
name: 'ValidationError';
issues: Issue[];
errors: Record<string, string>;
message: string;
}Поля
| Поле | Описание |
|---|---|
errors | Первая ошибка каждого поля, ключ — путь через точку. Как у validate |
issues | Все ошибки: { code, message, path } |
message | Все ошибки одной строкой: name: Required; email: Invalid email — удобно для логов |
name | Всегда 'ValidationError' |
Примеры
Общий обработчик ошибок в Express
ts
import { ValidationError } from 'tinyval';
app.use((err, req, res, next) => {
if (err instanceof ValidationError) {
return res.status(422).json({ message: 'Validation failed', errors: err.errors });
}
next(err);
});Формат ответа как в Laravel
ts
// { "message": "...", "errors": { "email": ["Invalid email"] } }
const errors = {};
for (const issue of err.issues) (errors[issue.path.join('.')] ??= []).push(issue.message);