GraphQL SDL в типы TypeScript
Преобразуйте GraphQL-схему в соответствующие типы, интерфейсы и перечисления TypeScript.
GraphQL SDL в типы TypeScript
Вставьте документ на языке определения схемы GraphQL (SDL) — объявления типов, входных данных, интерфейсов и перечислений, которые описывают GraphQL API — и этот инструмент генерирует соответствующие типы TypeScript. Команды, строящие GraphQL-сервер, или фронтенд-команды, использующие его без установленных инструментов codegen, получают типизированные структуры для каждого объекта, входных данных и интерфейса в схеме за один проход, без необходимости настраивать шаг сборки только для того, чтобы увидеть, как выглядят типы.
Отображение скаляров следует спецификации GraphQL по умолчанию: ID и String становятся строками, Int и Float становятся числами, Boolean остается логическим значением, а любой пользовательский скаляр — DateTime, JSON, Upload — переходит на конфигурируемый тип на ваш выбор. Поля, допускающие значение null, могут отображаться как необязательное свойство (field?: Type) или как явное объединение с null (field: Type | null), и тот же выбор формы применяется к целым объявлениям: выберите псевдонимы типов TypeScript или интерфейсы, причем implements преобразуется в extends при выборе интерфейсов. Перечисления генерируют либо строковое объединение литералов, либо реальный TypeScript enum. Префикс или суффикс имени предотвращает конфликты сгенерированных имен с написанными вручную, комментарии и блоки "description" из схемы переносятся как JSDoc, а типы, имена которых начинаются с подчеркивания — собственные типы интроспекции GraphQL — пропускаются по умолчанию.
Аргументы поля и директивы удаляются автоматически, так как типы TypeScript описывают форму, а не преобразователи: "field(id: ID!): User @deprecated" становится простым полем. Вложенные типы списков, такие как [String!]!, сохраняют независимость внутренней и внешней пустопустотности, поэтому список, не допускающий значение null, строк с нулевыми значениями и список строк, не допускающий значение null, выводятся по-разному. Объявления также можно сортировать по алфавиту вместо использования исходного порядка схемы.
Всё работает локально в вашем браузере — схема, которую вы вставляете, никогда никуда не загружается. Скопируйте сгенерированные типы, загрузите их как .txt-файл или отправьте выходные данные прямо обратно на вход, чтобы продолжить уточнение схемы.