parse
Проверяет данные и возвращает их, если они валидны, или бросает ValidationError. Удобно на сервере, где невалидный запрос — повод сразу прервать обработку.
Сигнатура
ts
function parse<S extends Schema>(schema: S, value: unknown, options?: Options): Infer<S>Параметры
| Параметр | Тип | Описание |
|---|---|---|
schema | Schema | Схема, по которой проверяются данные |
value | unknown | Любые данные |
options | Options | { 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 приложение упадёт при старте с понятной ошибкойСм. также
- ValidationError
- parseAsync
- validate — без исключений