GraphQL SDL u TypeScript tipove
Pretvori GraphQL shemu u odgovarajuće TypeScript tipove, interfacea i enum-e.
GraphQL SDL u TypeScript tipove
Ulijepite GraphQL shemu definition language (SDL) dokument — tipove, input, interfacea i enum-e deklaracije koje opisuju GraphQL API — i ovaj alat generiše odgovarajuće TypeScript tipove. Backend timovi koji prave GraphQL server, ili frontend timovi koji koriste jedan bez alata za codegen, dobijaju tipizirana svojstva za svaki objekat, input i interfacea u shemi u jednom prolasku, bez potrebe za dodatnim build korakom samo da vidite kakvi su tipovi.
Mapiranje skalarnih tipova prati GraphQL specifikaciju: ID i String postaju string, Int i Float postaju number, Boolean ostaje boolean, a svaki prilagođeni skalar — DateTime, JSON, Upload — pada nazad na tip koji odaberete. Polja koja mogu biti null mogu se prikazati kao neobavezna svojstva (field?: Type) ili kao eksplicitna unija s null (field: Type | null), i isti izbor oblika primjenjuje se na cijele deklaracije: izaberite TypeScript alias tipova ili interfacea, s tim što se implements pretvara u extends kada su interfacea odabrani. Enum-i generiraju ili string-literal uniju ili pravi TypeScript enum. Prefiks ili sufiks imena sprečava imena generiranih tipova od sudaranja s ručno napisanima, komentari i "opis" blokovi iz sheme prolaze kao JSDoc, a tipovi čije ime počinje s underskorom — GraphQL-ove vlastite introspection tipove — preskaču se po zadanoj vrijednosti.
Argumenti polja i direktive se automatski uklanjaju, jer TypeScript tipovi opisuju oblik a ne resolvere: "field(id: ID!): User @deprecated" postaje obično polje. Ugniježđeni list tipovi kao [String!]! čuvaju svoju unutarnju i vanjsku nullabilnost nezavisno, tako da se non-null lista nullable stringova i nullable lista non-null stringova pojavljuju drugačije. Deklaracije se takođe mogu sortirati abecedno umjesto praćenja originalnog redosljeda sheme.
Sve se izvršava lokalno u vašem pregledniku — shemu koju ulijepite se nigdje ne učitava. Kopirajte generirane tipove, preuzmite ih kao .txt datoteku, ili pošaljite rezultat odmah natrag u input da nastavite s usavršavanjem sheme.