İçeriğe atla
%100 yerel

GraphQL SDL'yi TypeScript Türlerine Dönüştür

Bir GraphQL şemasını eşleşen TypeScript türlerine, arayüzlerine ve enumlarına dönüştürün.

Giriş
Çıkış

GraphQL SDL'yi TypeScript Türlerine Dönüştür

Bir GraphQL şema tanım dili (SDL) belgesini yapıştırın — bir GraphQL API'yi tanımlayan tür, giriş, arayüz ve enum bildirimleri — ve bu araç eşleşen TypeScript türlerini oluşturur. Bir GraphQL sunucusu oluşturan arka uç takımları veya codegen araçları olmadan bir tane kullanan ön uç takımları, şemadaki her nesne, giriş ve arayüz için tek bir geçişte yazılan şekiller alırlar ve türleri görmek için bir yapı adımını kablolama zahmetine katlanmadan.

Skaler eşleme varsayılan olarak GraphQL belirtimini izler: ID ve String, string olur, Int ve Float, sayı olur, Boolean, boolean kalır ve herhangi bir özel skaler — DateTime, JSON, Upload — seçtiğiniz yapılandırılabilir bir türe geri döner. Boş olabilen alanlar isteğe bağlı bir özellik olarak (alan?: Tür) veya null ile açık bir birlik olarak (alan: Tür | null) işlenebilir ve aynı şekil seçimi tüm bildirimler için geçerlidir: TypeScript tür takma adları veya arayüzler arasında seçim yapın, arayüzler seçildiğinde implements, extends olur. Enumlar ya bir string-literal birliği ya da gerçek bir TypeScript enum oluştururlar. Bir ad ön eki veya son eki oluşturulan adları elle yazılanlarla çatışmaktan korur, şemadaki açıklamalar ve description blokları JSDoc olarak aktarılır ve adı alt çizgi ile başlayan türler — GraphQL'in kendi içgözlem türleri — varsayılan olarak atlanır.

Alan bağımsız değişkenleri ve direktifleri otomatik olarak kaldırılır, çünkü TypeScript türleri şekli tanımlar, çözücüleri değil: alan(id: ID!): Kullanıcı @deprecated düz bir alana dönüşür. [String!]! gibi iç içe geçmiş liste türleri iç ve dış boş değerliliklerini bağımsız olarak tutar, bu nedenle boş değer olmayan bir dize listesi ve boş değer için boş değer olmayan bir dize listesi farklı şekilde gelir. Bildirimler alfabetik sıraya veya şemanın orijinal sırasına göre sıralanabilir.

Her şey yerel olarak tarayıcınızda çalışır — yapıştırdığınız şema hiçbir yere yüklenmez. Oluşturulan türleri kopyalayın, .txt dosyası olarak indirin veya çıktıyı doğrudan giriş kutusuna göndererek şemayı iyileştirmeye devam edin.

FAQ

[String!]! gibi iç içe geçmiş liste ve boş olmayan değiştiriciyi işler mi?
Evet. Nullabilité'nin her seviyesi — listenin kendisi ve öğeleri — bağımsız olarak eşlenir, bu nedenle [String!]! string[] olur, [String] ise (string | null)[] olur.
DateTime veya JSON gibi özel skaların ne olur?
Özel Skaler Tür seçeneğinde ayarlanan geri dönüş türüne eşlenir (varsayılan olarak unknown). Bunu string, Date veya başka herhangi bir eşleşen türe ayarlayın ve o skaleri kullanan her alan bunu alır.
Alan bağımsız değişkenleri ve direktifleri çıktıda korunur mu?
Hayır. TypeScript türleri yalnızca şekli tanımlarken (limit: Int) gibi argümanlar ve @deprecated gibi direktifler atılır; alan kendisi normal şekilde dönüşür.
Tür takma adları yerine arayüzler oluşturabilirim?
Evet. Deklarasyon Türü nü Arayüzler olarak değiştirin ve GraphQL türü üzerindeki herhangi bir implements yan tümcesi TypeScript arayüzünün extends yan tümcesi haline gelir.
Şemam bir yere yükleniyor mu?
Hayır. Dönüştürme tamamen tarayıcınızda gerçekleşir — GraphQL şemanız asla cihazınızı terk etmez.