v0GuidesConfigure GraphQL Code Generator
⚠️
This is the documentation for the old GraphQL Mesh version v0. We recommend upgrading to the latest GraphQL Mesh version v1.

Migrate to GraphQL Mesh v1

Configure GraphQL Code Generator

Mesh relies on GraphQL Code Generator to generate the Resolvers type that give you access to:

  • fully typed resolvers map
  • fully typed SDK (through the context) to fetch data from Sources

The generated typed Mesh SDK can also be accessed directly, as shown below:

test.ts
import { getMeshSDK } from './.mesh'
 
async function test() {
  // Load mesh config and get the sdkClient from it
  const sdk = getMeshSDK()
 
  // Execute `myQuery` and get a type-safe result
  // Variables and result are typed: { getSomething: { fieldA: string, fieldB: number }, errors?: GraphQLError[] }
  const { getSomething } = await sdk.myQuery({ someVar: 'foo' })
}
💡

Remember you need operation documents to get this SDK generated. See here for more details

GraphQL Code Generator default configuration

Mesh provides a default GraphQL Code Generator configuration, shown below:

{
  "skipTypename": true,
  "flattenGeneratedTypes": false,
  "onlyOperationTypes": false,
  "preResolveTypes": false,
  "namingConvention": "keep",
  "documentMode": "graphQLTag",
  "gqlImport": "@graphql-mesh/utils#gql",
  "enumsAsTypes": true,
  "ignoreEnumValuesFromSchema": true,
  "useIndexSignature": true,
  "contextType": "MeshContext"
}

Customizing the GraphQL Code Generator configuration

The above default configuration can be overridden with the codegen root parameter, as shown below:

.meshrc.yaml
codegen:
  skipTypename: false
  contextType: './context#MyContextType'
💡

Please note, that the codegen parameter allows you to update the configuration passed to the GraphQL Code Generator plugins used by Mesh:

⚠️

The codegen parameter won’t allow you to add or remove plugins.