Skip to content

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);

См. также ​