Catch the highlights of GraphQLConf 2023! Click for recordings. Or check out our recap blog post.
Docs
Config Reference
plugin config

config field

The config field is used to pass configuration to Plugins.

config can be specified at many levels of the configuration:

Root Level

If you specify it in your root level, the options will be passed to every plugin for each output file:

import { CodegenConfig } from '@graphql-codegen/cli'
 
const config: CodegenConfig = {
  schema: 'schema.graphql',
  config: { configKey: 'configValue' },
  generates: { 'output.ts': ['plugin1', 'plugin2'] }
}
export default config

Output Level

If you specify it at the output file level, every plugin for specific output will get the config value:

import { CodegenConfig } from '@graphql-codegen/cli'
 
const config: CodegenConfig = {
  schema: 'schema.graphql',
  generates: {
    'output.ts': {
      config: {
        configKey: 'configValue'
      },
      plugins: ['plugin1', 'plugin2']
    }
  }
}
export default config
💡
Output level configuration overrides root-level configuration.

Plugin Level

If you specify it at the plugin level, only that plugin will get the config value:

import { CodegenConfig } from '@graphql-codegen/cli'
 
const config: CodegenConfig = {
  schema: 'schema.graphql',
  generates: {
    'output.ts': [
      {
        plugin1: { configKey: 'configValue' }
      },
      {
        plugin2: { configKey: 'otherValue' }
      }
    ]
  }
}
export default config
💡
Plugin level configuration overrides output-level and root-level configuration.