Документація / Валідація

Валідація

Схеми валідації виводяться з моделей. Всередині — Valibot.

Валідація генерується з моделі — окрему схему підтримувати не потрібно. Кожен CRUD POST/PUT/PATCH її застосовує.

Помилки повертають 400:

{
  "error": "VALIDATION_ERROR",
  "message": "Invalid body",
  "details": {
    "title": ["Invalid length: Expected >=3 but received 2"],
    "content": ["Invalid key: Expected \"content\" but received undefined"]
  }
}

Для власних маршрутів збирайте схему з моделі на вимогу:

import { buildModelSchema, validate } from '@hopak/core';
import postModel from '../models/post';

const schema = buildModelSchema(postModel, { omitId: true, partial: true });
const result = validate(schema, await ctx.body());
if (!result.ok) {
  // result.errors: Record<field, string[]>
}