Skip to content

parse ​

Проверяет данные и возвращает их, если они валидны, или бросает ValidationError. Удобно на сервере, где невалидный запрос — повод сразу прервать обработку.

Сигнатура ​

ts
function parse<S extends Schema>(schema: S, value: unknown, options?: Options): Infer<S>

Параметры ​

ПараметрТипОписание
schemaSchemaСхема, по которой проверяются данные
valueunknownЛюбые данные
optionsOptions{ all?: boolean } — как в validate

Возвращает ​

Очищенные типизированные данные — то же, что result.data у validate.

Бросает ​

  • ValidationError — если данные невалидны. В нём есть errors и issues.
  • Error — если в схеме есть checkAsync. Используйте parseAsync.

Примеры ​

Express ​

ts
import { parse, ValidationError } from 'tinyval';

app.post('/users', (req, res) => {
  try {
    const user = parse(CreateUser, req.body);
    // user уже проверен и типизирован
  } catch (e) {
    if (e instanceof ValidationError) return res.status(422).json({ errors: e.errors });
    throw e;
  }
});

Переменные окружения ​

ts
const env = parse(
  object({
    PORT: optional(coerce.number(), 3000),
    DATABASE_URL: string(),
    DEBUG: optional(coerce.boolean(), false),
  }),
  process.env,
);
// при отсутствии DATABASE_URL приложение упадёт при старте с понятной ошибкой

См. также ​