Schema GraphQL a tipi TypeScript
Converti uno schema GraphQL in tipi, interfacce ed enum TypeScript corrispondenti.
Schema GraphQL a tipi TypeScript
Incolla un documento del linguaggio di definizione dello schema GraphQL (SDL) — le dichiarazioni di tipi, input, interfacce ed enum che descrivono un'API GraphQL — e questo strumento genera i tipi TypeScript corrispondenti. I team backend che costruiscono un server GraphQL, o i team frontend che lo consumano senza strumenti di generazione di codice installati, ottengono forme tipate per ogni oggetto, input e interfaccia nello schema in un'unica passata, senza la necessità di configurare un passo di compilazione solo per vedere come appaiono i tipi.
La mappatura degli scalari segue la specifica GraphQL per impostazione predefinita: ID e String diventano string, Int e Float diventano number, Boolean rimane boolean, e qualsiasi scalare personalizzato — DateTime, JSON, Upload — ricade su un tipo configurabile che scegli. I campi nullable possono essere rappresentati come una proprietà opzionale (field?: Type) o come un'unione esplicita con null (field: Type | null), e la stessa scelta di forma si applica alle dichiarazioni complete: scegli gli alias di tipo TypeScript o le interfacce, con implements che diventa extends quando le interfacce sono selezionate. Gli enum generano o un'unione di letterali di stringa o un vero enum TypeScript. Un prefisso o suffisso di nome mantiene i nomi generati lontani da collisioni con quelli scritti a mano, i commenti e i blocchi "description" dello schema vengono conservati come JSDoc, e i tipi il cui nome inizia con un trattino basso — i propri tipi di introspezione di GraphQL — vengono saltati per impostazione predefinita.
Gli argomenti di campo e le direttive vengono eliminati automaticamente, poiché i tipi TypeScript descrivono la forma piuttosto che i risolutori: "field(id: ID!): User @deprecated" diventa un campo semplice. I tipi di liste annidate come [String!]! mantengono la loro nullabilità interna e esterna indipendente, quindi un elenco non-nullable di stringhe nullable e un elenco nullable di stringhe non-nullable escono diversamente. Le dichiarazioni possono anche essere ordinate alfabeticamente invece di seguire l'ordine originale dello schema.
Tutto funziona localmente nel tuo browser — lo schema che incolli non viene mai caricato da nessuna parte. Copia i tipi generati, scaricali come file .txt, o rimanda l'output direttamente all'input per continuare a perfezionare lo schema.