GraphQL SDL till TypeScript types
Konvertera ett GraphQL-schema till motsvarande TypeScript types, gränssnitt och enums.
GraphQL SDL till TypeScript types
Klistra in ett GraphQL Schema Definition Language (SDL)-dokument — type-, input-, interface- och enum-deklarationer som beskriver ett GraphQL API — och detta verktyg genererar motsvarande TypeScript types. Backend-team som bygger en GraphQL-server, eller frontend-team som använder en utan kodgenereringsverktyg installerade, får typade former för varje objekt, inmatning och gränssnitt i schemat på en gång, utan att behöva konfigurera ett byggsteg bara för att se vad typerna ser ut.
Skalar-mappning följer GraphQL-specifikationen som standard: ID och String blir string, Int och Float blir number, Boolean förblir boolean, och alla anpassade skalär — DateTime, JSON, Upload — faller tillbaka på en konfigurerbar typ du väljer. Nullbara fält kan återges som en valfri egenskap (field?: Type) eller som en explicit union med null (field: Type | null), och samma formval gäller för hela deklarationer: välj mellan TypeScript type-alias eller gränssnitt, där implements blir extends när gränssnitt väljs. Enums genererar antingen en string-literal-union eller en riktig TypeScript enum. Ett namnprefix eller -suffix förhindrar kollisioner mellan genererade och handskrivna namn, kommentarer och description-block från schemat överförs som JSDoc, och typer vars namn börjar med ett understreck — GraphQL:s egna introspektionstyper — hoppas över som standard.
Fältargument och direktiv tas bort automatiskt, eftersom TypeScript types beskriver form snarare än resolvers: field(id: ID!): User @deprecated blir ett enkelt fält. Kapslade listtyper som [String!]! behåller sin inre och yttre nullabilitet oberoende, så en lista med icke-null av nullable strings och en nullable lista med icke-null strings kommer ut olika. Deklarationer kan också sorteras alfabetiskt i stället för att följa schemats ursprungliga ordning.
Allt körs lokalt i din webbläsare — schemat du klistrar in laddas aldrig upp någonstans. Kopiera de genererade typerna, ladda ner dem som en .txt-fil, eller skicka utmatningen direkt tillbaka till inmatningen för att fortsätta att förfina schemat.