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