# graphql-codegen-typescript-operation-types

This graphql-codegen plugin generates the base TypeScript types used in the graphql operations.

Intended as a drop in replacement for the typescript plugin but only generates the input, enums, and object types
utilized in the graphql operations. Use one of `@graphql-codegen/typescript` or `graphql-codegen-typescript-operation-types`, not both. This plugin uses the underlying typescript plugin but only outputs used types.

The types generated by this plugin are simple, and refers to the exact structure of your schema.

This plugin is best used in conjunction with the typescript-operations plugin with `preResolveTypes: true` and setting
`omitObjectTypes: true`. In this configuration this plugin will emit only the enum and input types used in the graphql
mutations or queries.

All scalar types are always emitted.

## Example

Types only

```yml
overwrite: true
schema: 'path/to/schema.gql'

generates:
  path/to/file.ts:
    documents: 'path/to/gql/**/*.graphql'
    plugins:
      - graphql-codegen-typescript-operation-types
    config:
      omitObjectTypes: true
```

Types and fragments

```yml
overwrite: true
schema: 'path/to/schema.gql'

generates:
  path/to/file.ts:
    documents: 'path/to/gql/**/*.graphql'
    config:
      omitObjectTypes: true
      preResolveTypes: true
    plugins:
      - graphql-codegen-typescript-operation-types
      - typescript-operations
```
