joi README

The project's README from github.com/hapijs/joi. As one markdown file: README.md.

joi

The most powerful schema description language and data validator for JavaScript.

Installation

npm install joi

Visit the joi.dev Developer Portal for tutorials, documentation, and support

Useful resources

joi (hapijs/joi)

Searching Database…

21.2K ·GitHub
Что это такое?joi — это язык описания схем и валидатор данных для JavaScript: вы описываете, как выглядят корректные данные, а joi проверяет объекты на соответствие этому описанию. Библиотека вышла из экосистемы hapi, но работает в любом JavaScript-проекте.
Это фреймворк, который я запускаю, или библиотека, которую я вызываю из своего кода?Библиотека — вы устанавливаете её через npm и вызываете из своего кода для проверки данных. Никакой сервер или процесс запускать не нужно.
Как добавить её в проект?Достаточно выполнить npm install joi. Для уроков, полной документации по API и поддержки проект отсылает к joi.dev Developer Portal.
Мне нужна свежая версия Node, чтобы пользоваться ею?Да — пакет объявляет Node.js 20 как минимум, поэтому более старые версии Node не подойдут. Больше ничего не требуется: ни Python, ни компиляторов, ни Docker.
joi привязан к фреймворку hapi или его можно использовать где угодно?Где угодно — это независимый npm-пакет, и в нём нет ничего, требующего сервера hapi. Связь с hapi — только история происхождения: внутренности построены на небольших утилитарных модулях @hapi, таких как @hapi/hoek.
joi работает в браузере или только в Node?И там, и там. Он работает на Node.js, а в репозитории поддерживается отдельная браузерная сборка, которая компилируется перед каждым публикацией, — та же логика валидации может выполняться и на стороне клиента.
Что мне даёт поддержка Standard Schema?joi подключает @standard-schema/spec как зависимость — это интерфейс Standard Schema, общий способ для JS-библиотек предоставлять валидаторы. Это значит, что joi хорошо работает с инструментами, которые принимают валидаторы Standard Schema, без специальных адаптеров.
Он потянет за собой много зависимостей в мой проект?Нет — в рантайме это шесть небольших хелперов @hapi (@hapi/hoek, @hapi/topo, @hapi/formula, @hapi/address, @hapi/pinpoint, @hapi/tlds) плюс спецификация Standard Schema. Никакого Docker, Python или нативной компиляции.
joi всё ещё поддерживается или это устаревший проект?Похоже, проект жив и хорошо охраняется: репозиторий не архивирован, CI-процессы запускаются при изменениях, а тесты выполняются с жёстким порогом покрытия в 100% через @hapi/lab. Проект существует с 2012 года.
Creator
hapijs
Size
9.9 MB
Stars
21.2K
Updated
CommitSep 11
Age
14y
Commits · 90 Days