GraphQL Generatore di corrispondenza frammenti — Numio
Costruisce la mappa possibleTypes da uno schema GraphQL utilizzando @graphql-codegen/fragment-matcher. Ogni interfaccia e unione è elencata con i tipi di oggetto che la implementano o che appartengono ad essa, pronti per InMemoryCache di Apollo Client.
Configurazione di InMemoryCache({ possibleTypes }) in modo che i frammenti su interfacce o unioni corrispondano correttamente in Apollo Client 3.
Quando usarlo
- Configurazione di InMemoryCache({ possibleTypes }) in modo che i frammenti su interfacce o unioni corrispondano correttamente in Apollo Client 3.
- Rigenerazione della mappa possibleTypes dopo aver aggiunto un nuovo tipo a un'unione, senza eseguire il codegen CLI.
Come si usa
- Incolla uno schema che contiene le definizioni di interfaccia o unione nell'editor dello schema GraphQL.
- Leggere l'oggetto possibleTypes generato; i tipi che non fanno parte di un'interfaccia o di un'unione non vengono visualizzati.
- Salvalo come file .ts e passa possibleTypes dell'esportazione predefinita a InMemoryCache.
Schema GraphQL
interface Node {
id: ID!
}
type User implements Node {
id: ID!
name: String!
}
type Post implements Node {
id: ID!
title: String!
}
union SearchResult = User | Post
type Query {
search(term: String!): [SearchResult!]!
}possibleTypes (TypeScript)
export interface PossibleTypesResultData {
possibleTypes: {
[key: string]: string[]
}
}
const result: PossibleTypesResultData = {
possibleTypes: {
Node: ["User", "Post"],
SearchResult: ["User", "Post"],
},
}
export default resultDettagli e limiti
Viene utilizzato solo lo schema; questa pagina non ha un editor di documenti.
L'output è TypeScript: un'interfaccia PossibleTypesResultData, una costante di risultato tipizzata e un'esportazione predefinita.
Uno schema senza interfacce o unioni produce un oggetto possibleTypes vuoto. La generazione viene eseguita in un Web Worker nel tuo browser.
FAQ
È questo il vecchio formato IntrospectionFragmentMatcher?
No. L'output utilizza la forma possibleTypes (nome del supertipo mappato su un array di nomi di sottotipo) utilizzata da Apollo Client 3, non il formato del risultato dell'introspezione di Apollo Client 2.
Come si utilizza l'output con Apollo Client?
Importa l'esportazione predefinita e passa result.possibleTypes al nuovo InMemoryCache({ possibleTypes }).