Konwerter GraphQL na schemat AST — Numio
Analizuje GraphQL SDL, buduje schemat i wypisuje go z powrotem jako pojedynczy znormalizowany schemat z @graphql-codegen/schema-ast. Rozszerzenia typów są łączone z ich typami podstawowymi, a opisy są drukowane jako ciągi blokowe.
Łączenie bloków typu Extend rozłożonych na kilka plików w jeden schema.graphql w celu przeglądu lub wykorzystania narzędzi.
Kiedy go używać
- Łączenie bloków typu Extend rozłożonych na kilka plików w jeden schema.graphql w celu przeglądu lub wykorzystania narzędzi.
- Normalizowanie odręcznego SDL do kanonicznego formatu drukowanego przed porównaniem dwóch wersji schematu.
Jak używać
- Wklej jeden lub więcej fragmentów SDL, w tym wszelkie bloki typu Extend, do edytora schematu GraphQL.
- Sprawdź wydrukowany wynik: pola rozszerzeń zostaną dodane do oryginalnego typu, a opisy staną się blokami „”.
- Skopiuj dane wyjściowe i zapisz je jako plik .graphql.
Schemat GraphQL
extend type Query {
me: User
}
type Query {
ping: String
}
type User {
id: ID!
"Display name"
name: String @deprecated(reason: "Use fullName")
}Schemat wydrukowany (SDL)
type Query {
me: User
ping: String
}
type User {
id: ID!
"""
Display name
"""
name: String @deprecated(reason: "Use fullName")
}Szczegóły i ograniczenia
Kolejność pól może ulec zmianie: w tym przykładzie pola z bloku typu rozszerzonego zostały wydrukowane przed polami własnymi typu podstawowego.
Dyrektywy pól, takie jak @deprecated(powód: ...) są przechowywane w drukowanym pliku SDL.
Schemat jest budowany i drukowany w narzędziu Web Worker w przeglądarce, a następnie formatowany za pomocą parsera GraphQL firmy Prettier.
FAQ
Czy wyprowadza JSON AST?
Nie. Pomimo nazwy drukowany jest wynik GraphQL SDL, a nie JSON DocumentNode. Skorzystaj ze strony introspekcji JSON, jeśli potrzebujesz JSON.
Co się stanie z # komentarzami?
Komentarze nie należą do schematu i są usuwane podczas jego wypisywania. Użyj ciągów "description", aby zachować dokumentację.
Czy można połączyć typ rozszerzony z typem podstawowym?
Tak. Rozszerzenia są stosowane do typu bazowego, więc wynik zawiera jeden typ Query ze wszystkimi polami.