Генератор JSON-schema из типов TypeScript
@dadata-sdk/schema-gen
Утилита для генерации JSON-schema из типов TypeScript.
Представляет собой обёртку над ts-json-schema-generator, настроенную под нужды данного проекта и улучшенную за счёт нескольких дополнительных проходов пост-обработки.
Обрабатывает схему таким образом, чтобы из неё было легче генерировать осмысленный код на других языках программирования, например, через такие инструменты как: PHP Schema2Class (рабочий форк).
- Убирает из схемы артефакты наподобие
Partial<alias-5732195...>. - Схлопывает цепочки ссылающихся друг на друга generic-ов, оставляя только основной definition.
- Встраивает любые definitions верхнего уровня, с типом, отличным от
object, в то место, где они используются.
Также подойдёт, например, если вы каким-либо образом модифицируете стандартные объекты ДаДаты, и вам нужна соответствующая JSON-схема. В этом случае вы можете взять за основу @dadata-sdk/api-types, изменить типы в TypeScript, и сгенерировать из изменённых типов новую схему.
Пример использования через CLI:
pnpm schema-gen --input path/to/file.types.ts --output ./json-schemaТакже можно использовать программно:
import { generateSchemas } from '@dadata-sdk/schema-gen';
await generateSchemas({
input: './path/to/file.types.ts',
output: './json-schema',
tsconfig: 'tsconfig.schema-gen.json', // опционально
});Выводит предупреждения в консоль, если есть что-либо, требующее внимания.
Каких-либо настраиваемых опций на текущий момент не предоставляет.