On this page

Apollo-Client Helpers

Generates helpers for improving the integration of TypeScript and Apollo-Client, based on your schema. This plugin generates fully-typed keyFields and Type-Policies for Apollo-Client.

Version
4.0.1
Weekly downloads
196k
License
MIT
Updated
Apr 19, 2026

Installation

          npm i -D @graphql-codegen/typescript-apollo-client-helpers
        

Config API Reference

useTypeImports

type: boolean

Will use import type {} rather than import {} when importing only types. This gives compatibility with TypeScript’s “importsNotUsedAsValues”: “error” option Default value: “false”

requireKeyFields

type: boolean

Remove optional sign from all keyFields fields. Default value: “false”

requirePoliciesForAllTypes

type: boolean

Remove optional sign from all generated keys of the root TypePolicy. Default value: “false”

This plugin generates helpers for improving the integration of TypeScript and Apollo-Client, based on your schema.

This plugin generates fully-typed keyFields and Type-Policies for Apollo-Client.

How to use?

Start by adding this plugin to your configuration:

codegen.ts
import type { CodegenConfig } from '@graphql-codegen/cli'

const config: CodegenConfig = {
  schema: 'my-schema.graphql',
  generates: {
    'apollo-helpers.ts': {
      plugins: ['typescript-apollo-client-helpers']
    }
  }
}
export default config

Then, use the generated TypeScript type as your signature for typePolicies:

import { StrictTypedTypePolicies } from './apollo-helpers'

const typePolicies: StrictTypedTypePolicies = {
  // Keys in this object will be validated against the types on your schema
  Product: {
    keyFields: ['id'] // Values in this field will be validated against the available fields from the Product type
  },
  Person: {
    keyFields: ['name', 'email']
  },
  Book: {
    // This entire definition is typed, based on available types and fields
    fields: {
      tags: {
        merge: false
      }
    }
  }
}

const cache = new InMemoryCache({ typePolicies })