GraphQL naar schema AST-converter — Numio
Parseert GraphQL SDL, bouwt een schema en drukt dit terug als één genormaliseerd schema met @graphql-codegen/schema-ast. Type-extensies worden samengevoegd met hun basistypen en beschrijvingen worden afgedrukt als blokreeksen.
Het samenvoegen van uitbreidingstypeblokken verspreid over verschillende bestanden in één schema.graphql voor beoordeling of tooling.
Wanneer gebruik je dit?
- Het samenvoegen van uitbreidingstypeblokken verspreid over verschillende bestanden in één schema.graphql voor beoordeling of tooling.
- Het normaliseren van handgeschreven SDL in het canonieke gedrukte formaat voordat twee schemaversies van elkaar verschillen.
Hoe werkt het
- Plak een of meer SDL-fragmenten, inclusief eventuele uitbreidingstypeblokken, in de GraphQL Schema-editor.
- Controleer het afgedrukte resultaat: extensievelden worden toegevoegd aan het originele type en beschrijvingen worden """-blokken.
- Kopieer de uitvoer en sla deze op als een .graphql-bestand.
GraphQL-schema
extend type Query {
me: User
}
type Query {
ping: String
}
type User {
id: ID!
"Display name"
name: String @deprecated(reason: "Use fullName")
}Afgedrukt schema (SDL)
type Query {
me: User
ping: String
}
type User {
id: ID!
"""
Display name
"""
name: String @deprecated(reason: "Use fullName")
}Details en beperkingen
De veldvolgorde kan veranderen: velden uit een uitbreidingstypeblok werden in dit voorbeeld afgedrukt vóór de eigen velden van het basistype.
Veldrichtlijnen zoals @deprecated(reden: ...) blijven behouden in de afgedrukte SDL.
Het schema wordt gebouwd en afgedrukt in een Web Worker in uw browser en vervolgens geformatteerd met de GraphQL-parser van Prettier.
FAQ
Geeft het een JSON AST uit?
Nee. Ondanks de naam wordt het resultaat afgedrukt als GraphQL SDL, en niet als JSON DocumentNode. Gebruik de introspectie JSON-pagina als je JSON nodig hebt.
Wat gebeurt er met # reacties?
Opmerkingen maken geen deel uit van het schema en worden verwijderd wanneer het schema wordt afgedrukt. Gebruik 'description'-tekenreeksen om documentatie bij te houden.
Kan het uitbreidingstype samenvoegen met het basistype?
Ja. Er worden extensies toegepast op het basistype, zodat de uitvoer één type Query bevat met alle velden.