@xometry/graphql-code-generator-subset-plugin
v0.3.0
Published
A plugin for graphql-code-generator that will take a full schema and a set of operations, and produce a subset schema.
Downloads
34
Readme
A plugin for graphql-code-generator that will output the subset of a large schema that is actually used by GraphQL operations.
Background
In the Xometry service architecture, each GraphQL API is joined together using GraphQL federation. These are called "API providers".
Each GraphQL API consumers (frontend or backend) may use only a small portion of the full API provided by a service. In order for the API catalog to function properly, it wants each consumer to declare only the fields that it actually uses and needs, rather than all possible fields. This GraphQL plugin helps accomplish that goal, but automatically generating a subset schema from a large schema and a set of operations. This subset schema can then be checked into the consumer repository and used for subsequent code generation runs.
Installation
yarn add --dev @xometry/graphql-code-generator-subset-plugin
Usage
This plugin would not typically be used by CI/CD processes. Instead it would be used by developers when updating a consumer to
changes in a consumed API. You probably want to write a separate codegen.yml
file for developers to run this as-needed. Suggestion: name this file codegen-subsetschema.yml
.
This is a simple output plugin for graphql-code-generator, and so you configure it by adding the following snippet to your codegen-subsetschema.yml
file:
generates:
my-consumed-schema.graphql
- "@xometry/graphql-code-generator-subset-plugin"
As a simple example, see the examples/github directory, where we generate a small subset of the github API schema.