GraphQL SDL v tipe TypeScript
Pretvori GraphQL shemo v ustrezne tipe TypeScript, vmesnike in enum-e.
GraphQL SDL v tipe TypeScript
Prilepite dokument GraphQL schema definition language (SDL) — tipske, vhodne, vmesnikove in enumeracijske deklaracije, ki opisujejo GraphQL API — in to orodje generiše ustrezne tipe TypeScript. Tipi backenda, ki gradijo GraphQL strežnik, ali tudi tipi frontenda, ki ga uporabljajo brez vgrajenih orodij za codegen, dobijo tipe za vsak objekt, vhod in vmesnik v shemi v enem prehodu, brez potrebe po dodatnem koraku sestave, da le pogledali, kako izgledajo tipci.
Mapiranje skalarnih tipov sledi specifikaciji GraphQL: ID in String postaneta string, Int in Float postaneta number, Boolean ostane boolean, vsak prilagojeni skalar pa — DateTime, JSON, Upload — se vrne na tip, ki ga izberete. Polja, ki so lahko null, se lahko prikazujejo kot neobvezne lastnosti (field?: Type) ali kot eksplicitna unija z null (field: Type | null), in enaka izbira oblike se uporabi za cele deklaracije: izberite vzdevke tipov TypeScript ali vmesnike, pri čemer se implements spremeni v extends, ko so izbrani vmesniki. Enumeracije generirajo ali string-literal unijo ali resnični TypeScript enum. Predpona ali pripona imena prepreči imena generiranih tipov pred trkom s ročno napisanimi, komentarji in "opis" bloki iz sheme se prenesejo kot JSDoc, in tipci, katerih ime se začne z underskorom — GraphQL-ovi lastni introspection tipi — se privzeto preskoče.
Argumenti polja in direktive se samodejno odstranijo, ker tipi TypeScript opisujejo obliko in ne razreševalce: "field(id: ID!): User @deprecated" postane samo polje. Ugnezdeni list tipi, kot so [String!]!, ohranijo svojo notranjo in zunanjo nullable-nost neodvisno, zato se seznam z nič-vrednostjo in seznam ne-null vrednosti pojavita drugače. Deklaracije je mogoče tudi razvrstiti po abecedi namesto da sledite originalnemu vrstnemu redu sheme.
Vse se izvršava lokalno v vašem brskalniku — shema, ki jo prilepite, se nikoli ne pošlje nikamor. Kopirajte generirane tipe, jih preuzmite kot datoteko .txt ali pošljite izhod neposredno nazaj v vhod, da nadaljujete z izboljšanjem sheme.