On this page

Near Operation File Preset

GraphQL Code Generator - Near Operation File Preset. Generates a file per each operation file.

Version
5.2.2
Weekly downloads
843k
License
MIT
Updated
Aug 17, 2026

Installation

          npm i -D @graphql-codegen/near-operation-file-preset
        

Config API Reference

baseTypesPath

type: string

points to the base schema types file. The key of the output is used a the base path for this file.

If you wish to use an NPM package or a local workspace package, make sure to prefix the package name with ~.

importAllFragmentsFrom

type: object

Overrides all external fragments import types by using a specific file path or a package name.

If you wish to use an NPM package or a local workspace package, make sure to prefix the package name with ~.

fileName

type: string

Optional, sets a specific file name for the generated files. Use this to override the generated file name when generating files for example based on multiple .graphql files in separate directories.

extension

type: string

Optional, sets the extension for the generated files. Use this to override the extension if you are using plugins that requires a different type of extensions (such as typescript-react-apollo) Default value: “.generated.ts”

cwd

type: string

Optional, override the cwd of the execution. We are using cwd to figure out the imports between files. Use this if your execution path is not your project root directory. Default value: “process.cwd()”

folder

type: string

Optional, defines a folder, (Relative to the source files) where the generated files will be created. Default value: ”””

importTypesNamespace

type: string

Optional, override the name of the import namespace used to import from the baseTypesPath file. Default value: “Types (if baseTypesPath is set)”

filePerOperation

type: boolean

Optional, generates one file per operation, using the operation name as the filename. Note: if your documents are in .graphql files and there are multiple operations or fragments in a single file, the generated filename will be based on the first operation or fragment found. Default value: “false”

This preset generates a file per each operation file.

Example

In order to use this preset, you need to add 2 outputs to your codegen.yml file:

  • The first, is the base types, generated by typescript plugin.
  • The second, is the one that is in charge of generating types per operation.

This following example generates operation typings and react-apollo component per each operation file, near the original file of the operation:

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

const config: CodegenConfig = {
  schema: 'src/schema.json',
  documents: 'src/**/*.graphql',
  generates: {
    'src/types.ts': { plugins: ['typescript'] },
    'src/': {
      preset: 'near-operation-file',
      presetConfig: {
        extension: '.generated.tsx',
        baseTypesPath: 'types.ts',
      },
      plugins: ['typescript-operations', 'typescript-react-apollo'],
    },
  },
};
export default config;

How does it work?

The first output is simple, and it only generates the base schema types to src/types.ts.

The second output refers to the base directory of the project (./src/) and it uses the near-operation-file preset to generate a file per each operation found under ./src/**/*.graphql.

The presetConfig section contains a key for setting the output files extension (in our case, .generated.tsx because of react-apollo), and the location of the base schema types file we created in the first section of this file (it will look for it in the base directory).