Skip to content

chore(deps): update graphqlcodegenerator monorepo (major) - #609

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-graphqlcodegenerator-monorepo
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-graphqlcodegenerator-monorepo

Conversation

@renovate

@renovate renovate Bot commented Sep 9, 2025 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@graphql-codegen/cli (source) 5.0.7 → 8.0.0 age confidence
@graphql-codegen/typescript (source) 4.1.6 → 7.0.1 age confidence
@graphql-codegen/typescript-graphql-request (source) 6.3.0 → 8.0.2 age confidence
@graphql-codegen/typescript-operations (source) 4.6.1 → 7.0.1 age confidence

Release Notes

dotansimha/graphql-code-generator (@​graphql-codegen/cli)

v8.0.0

Compare Source

Major Changes
  • #​11075
    fa49a37
    Thanks @​eddeee888! - BREAKING CHANGE: GraphQL 14 and 15 are no
    longer supported. The graphql peer dependency is now ^16.0.0 || ^17.0.0, so upgrade graphql
    to version 16 or 17 before updating to this version.

  • #​11075
    fa49a37
    Thanks @​eddeee888! - BREAKING CHANGE: Node.js versions below
    22.18.0 are no longer supported. Upgrade to Node.js 22.18.0 or later before updating to this
    version.

  • #​11075
    fa49a37
    Thanks @​eddeee888! - generate() now returns
    Promise<FileOutput[] | void> instead of Promise<FileOutput[] | any>. The result is no longer
    any, so consumers using the result as an array must narrow it first.

    Refs #​11071

  • #​11075
    fa49a37
    Thanks @​eddeee888! - BREAKING CHANGE: Remove the deprecated
    emitLegacyCommonJSImports config option and the --emit-legacy-common-js-imports CLI flag

    Use importExtension (or --import-extension) to set the extension appended to relative imports.
    When importExtension is not set, no extension is appended.

    @graphql-codegen/plugin-helpers no longer exports normalizeImportExtension. Use
    importExtension ?? '' instead.

    Migration:

     const config: CodegenConfig = {
    -  emitLegacyCommonJSImports: false,
    +  importExtension: '.js',
     };
  • #​11075
    fa49a37
    Thanks @​eddeee888! - BREAKING CHANGE: @graphql-tools/*
    dependencies are updated to their latest majors, which require Node.js 22.18.0 or later and
    GraphQL 16 or 17. If you import @graphql-tools/* packages in your own code, update them to the
    same majors to avoid duplicate installs. @graphql-tools/code-file-loader@9 now extracts
    #graphql-marked template literals by default, so code files that contain such templates can
    produce newly found documents; check your generated output after upgrading. To keep the previous
    behavior, set pluckConfig: { gqlHashComment: '' }.

  • #​11075
    fa49a37
    Thanks @​eddeee888! - BREAKING CHANGE - config.generates no
    longer takes ConfiguredPlugin[], takes ConfiguredOutput[] instead

    config.generates's previous typing allowed a value to be an array e.g.

    generates: {
      "src/gql/generated.ts": [{ typescript: {} }]
    }
    

    However, this never worked because this config is eventually passed into normalizeOutputParam
    which previously had this bug in the implementation:

    export function normalizeOutputParam(config) {
      // 0. When config is an array...
      if (isOutputConfigArray(config)) {
        // 1. `isOutputConfigArray(config)` was `Array.isArray(config)` -> returns true
        return {
          documents: [],
          schema: [],
          plugins: isConfiguredOutput(config) ? config.plugins : config // 2. ‼️ `isConfiguredOutput(config)` was `typeof config === 'object'` -> returns true. This is a bug because we are accessing `plugins` property of an array, which will ALWAYS be `undefined` -> the output is always rejected as "Invalid Codegen Configuration"
        }
      }
      if (isConfiguredOutput(config)) {
        return config
      }
      throw new Error(`Invalid "generates" config!`)
    }

    Now, an array is still accepted, but as ConfiguredOutput[] instead. For this major version
    release, only the first array element is used, and @graphql-codegen/cli logs a warning when
    there is more than one element.

    normalizeOutputParam now returns ConfiguredOutput[] instead of a single ConfiguredOutput.

    @graphql-codegen/cli also throws its "Invalid Codegen Configuration" error when a generates
    array is empty or its first element is not a config object. This error is now a single generic
    message, no longer naming the output file, and it shows a TypeScript CodegenConfig example with
    the ConfiguredOutput shape instead of the old YAML plugin-list example.

Patch Changes

v7.4.6

Compare Source

Patch Changes
  • #​10985
    d8aa07f
    Thanks @​eddeee888! - Build with strict: true, which changes
    these emitted type declarations:

    • @graphql-codegen/cli: mkdirp returns Promise<string | undefined>, and the require (-r)
      CLI option's default is typed never[] instead of any[].
    • @graphql-codegen/visitor-plugin-common: BaseResolversVisitor and BaseTypesVisitor
      SchemaDefinition()/SchemaExtension() return null instead of any.
    • @graphql-codegen/visitor-plugin-common: BaseSelectionSetProcessor.typeCache is keyed by
      Location | undefined.
    • @graphql-codegen/visitor-plugin-common: SelectionSetToObject.buildSelectionSet returns
      typeInfo as { name: string; type: string } | null.
    • @graphql-codegen/visitor-plugin-common: getPossibleTypes accepts null as the type, which
      graphql 15's schema.getType() can return.
    • @graphql-codegen/visitor-plugin-common: removeDescription returns nodes with
      description: undefined instead of any.
    • @graphql-codegen/typescript: TsIntrospectionVisitor's constructor takes pluginConfig as
      TypeScriptPluginConfig | undefined, DirectiveDefinition() returns null and
      ObjectTypeDefinition() returns string | null.
    • @graphql-codegen/client-preset: the babel preset accepts options as
      ClientBabelPresetOptions | null | undefined.
    • @graphql-codegen/testing: mockGraphQLServer returns nock.Scope | null.
    • @graphql-codegen/graphql-modules-preset: a schema without extensions (graphql 15) throws the
      "requires to use GraphQL SDL" error instead of a TypeError.

    Generated output is unchanged.

  • Updated dependencies
    [d8aa07f]:

v7.4.5

Compare Source

Patch Changes

v7.4.4

Compare Source

Patch Changes
  • #​11025
    43d0f65
    Thanks @​BuddhaBing! - Widen
    Types.SchemaWithLoaderOptions['loader'] to accept a custom loader function
    (CustomSchemaLoaderFn) in addition to a path string.

    A per-entry schema custom loader ({ '<pointer>': { loader, ...options } }) is resolved by
    @graphql-tools/load's useCustomLoader, which already accepts either a path string (resolved
    via require()) or a function value at runtime (typeof loaderPointer === 'function'). Only the
    TypeScript type restricted loader to string, forcing consumers who pass an imported loader
    function (or a class instance exposing a bound loader property) to cast the schema array to
    bypass the type error, even though it worked correctly at runtime.

    This is additive and backward compatible — loader: string continues to type-check exactly as
    before.

    Also fixes a schema-cache collision for function loaders in @graphql-codegen/cli: the cache key
    is JSON.stringify(schemaPointerMap), and JSON.stringify drops functions, so two generates
    targets using different loader functions for the same pointer
    ({ 'schema.graphql': { loader: fnA } } vs { loader: fnB }) both keyed as
    {"schema.graphql":{}} and the second silently reused the first's schema. Function values are now
    keyed by object identity (via the existing getJsObjectId), so distinct loaders load separately
    while one function reused across targets still loads once.

  • #​11020
    82ebbb5
    Thanks @​eddeee888! - Fix type errors in cli under
    strict: true:

    • @graphql-codegen/cli: loadCodegenConfig returns Promise<LoadCodegenConfigResult | null>,
      matching the null it resolves to when no config file is found. YamlCliFlags includes the
      kebab-case ignore-no-documents, emit-legacy-common-js-imports and import-extension flags
      that the CLI reads. CodegenContext.filepath is optional, and watch mode only watches the
      config file when the context has a filepath. CodegenContext.getConfig() without an argument
      returns Types.Config, and getConfig(extraConfig) returns T & Types.Config.
      CodegenContext.checkModeStaleFiles is typed as string[]. Adds @types/yargs,
      @types/babel__generator and @types/babel__template as dev dependencies.
    • @graphql-codegen/plugin-helpers: normalizeInstanceOrArray and normalizeConfig accept
      null and undefined, returning [].

    Generated output is unchanged.

  • Updated dependencies
    [43d0f65,
    82ebbb5,
    e972b6d,
    eae0e62,
    1f7566f]:

v7.4.3

Compare Source

Patch Changes

v7.4.2

Compare Source

Patch Changes
  • #​10956
    cec9c1c
    Thanks @​eddeee888! - Fix dynamically-loaded plugins/presets in ESM
    builds. Previously, ESM used the bare module specifier without resolving it relative to the
    consuming project first, so a plugin only loaded if it happened to be reachable from the CLI
    package's own node_modules. Resolving it the same way the CJS build already does
    (relativeRequire.resolve(mod)) fixes that, but the resolved absolute path also has to be
    converted to a file:// URL (pathToFileURL(...).href) before being passed to import() —
    otherwise, on Windows, the loader misparses a raw path like C:\... as a c: protocol scheme and
    throws ERR_UNSUPPORTED_ESM_URL_SCHEME.

  • #​10966
    3029b60
    Thanks @​eddeee888! - Fix lifecycle hook scripts (e.g.
    hooks: { afterAllFileWrite: ['prettier --write'] } }) failing on Windows when the file paths
    passed to them contain a backslash or other POSIX shell-special character. Hook arguments were
    always quoted using POSIX single-quoting, but child_process.exec() runs through cmd.exe on
    Windows by default, which doesn't strip single quotes — so the hook script received the literal
    quote characters as part of its argument and failed to find the file. Arguments are now quoted
    per-platform: POSIX quoting stays unchanged elsewhere, and Windows arguments are wrapped in double
    quotes only when they actually need it, matching cmd.exe's own convention.

  • #​10959
    7dffaae
    Thanks @​eddeee888! - Fix the CLI reporting success (exit code 0)
    when a generates output's preset can't be resolved. The error was shown in the terminal but
    never counted toward the run's failure state, so allowPartialOutputs: false (the default) never
    took effect for this case.

v7.4.1

Compare Source

Patch Changes
  • #​10935
    fb1a7c4
    Thanks @​eddeee888! - dependencies updates:

  • #​10942
    57c3e7b
    Thanks @​eddeee888! - dependencies updates:

  • #​10942
    57c3e7b
    Thanks @​eddeee888! - Bump @graphql-tools/merge from ^9.0.6 to
    ^9.2.4.

  • #​10935
    fb1a7c4
    Thanks @​eddeee888! - Fix a Windows-specific import() failure on
    absolute paths when loading a schema/document from a .js/.cjs/.mjs file (via
    @graphql-tools/code-file-loader), and when loading modules passed to that loader's own require
    option. Node's dynamic import() rejects raw absolute Windows paths (the drive letter is parsed
    as a URL scheme). Fixed by bumping @graphql-tools/code-file-loader to 8.1.39, which contains
    the upstream fix
    (ardatan/graphql-tools#8421).

  • #​10936
    9521c0c
    Thanks @​eddeee888! - Fix watch mode's generated ignore glob
    patterns using the platform path separator (\ on Windows), which @parcel/watcher never
    matched, so generated output files were watched (and could re-trigger builds) instead of being
    ignored. Ignore patterns are now always forward-slash, as @parcel/watcher expects.

    Also fixes the test suite's TempDir.clean() helper on Windows, where rimraf.sync() rejected
    its own glob-style cleanup pattern as containing illegal path characters; now passes
    { glob: true }. This is a test-only change (tests/utils.ts is not part of the published
    package) included here since it was needed to get the suite green on Windows alongside the
    watch-mode fix.

v7.4.0

Compare Source

Minor Changes
  • #​10928
    90229a5
    Thanks @​eddeee888! - Add
    contentComparison?: 'cache-first' | 'disk' to control disk-vs-cache write comparison in watch
    mode.

    In watch mode the CLI caches the hash of the content it last wrote per file and compares new
    output against that cached hash to skip redundant writes. This assumes generated output is a pure
    function of the codegen inputs. An output whose content depends on the file's existing content
    (e.g. a preset that reads the file and rewrites part of it) breaks that assumption: if the file is
    changed on disk and codegen regenerates content identical to a previous run, the cached hash still
    matches and the write is skipped, so the on-disk change is never corrected.

    contentComparison: 'disk' opts an output into comparing the generated content against the file
    on disk instead of the in-memory record of what codegen last wrote, so the file is rewritten when
    it was changed externally. It can be set:

    • by a preset, on the GenerateOptions it returns from buildGeneratesSection, or
    • on the output config (generates[output].contentComparison) for any output, including plain
      plugin outputs without a preset.

    When both are present, the preset's value takes precedence. The default, 'cache-first', keeps
    the existing in-memory-cache behaviour for outputs that are a pure function of their inputs.

Patch Changes
  • #​10930
    448431a
    Thanks @​eddeee888! - Fix overwrite being ignored for
    preset-based generates outputs.

    A generates entry that used a preset and set overwrite (e.g.
    overwrite: { removeStaleFiles: false }) had that setting silently ignored, so in watch mode its
    generated files could still be deleted as stale.

    The CLI resolved overwrite per generated file by looking the file's path up in
    config.generates. That fails for a preset: its generates entry is keyed by the preset's
    baseOutputDir, not by any generated file's path (and a preset can emit files outside that
    directory), and the lookup additionally required a plugins key that preset entries don't have.
    Both cases fell through to the global config.overwrite (default true).

  • Updated dependencies
    [90229a5,
    448431a]:

v7.3.1

Compare Source

Patch Changes
  • #​10924
    0c8f5ba
    Thanks @​eddeee888! - Fix profiler output not being written to the
    filesystem in watch mode (--profile --watch)

    The profiler trace was only written on the non-watch code path, after the watch-mode early return,
    so a profiled watch session never produced a codegen-*.json file.

    The profiler now writes a fresh trace file after the initial run and after every rebuild, with
    each file containing only that run's events. A failed rebuild does not produce a trace and its
    events are discarded so they don't leak into the next successful run.

    The Profiler now owns its own trace lifecycle:

    • a new clear() method starts a new trace
    • a new outputName property provides the filename for the current trace (null for the noop
      profiler)
    • filename generation was removed from CodegenContext
  • Updated dependencies
    [0c8f5ba]:

v7.3.0

Compare Source

Minor Changes
  • #​10921
    58cdb31
    Thanks @​eddeee888! - Extend overwrite with
    overwrite.removeStaleFiles and overwrite.updateExistingFiles

    overwrite was being used to both remove stale files in watch mode and update existing files.
    Some plugins such as Server Preset may dynamically return files to write between watch runs (for
    performance purposes).

    The overwrite can now take an object with overwrite.removeStaleFiles and
    overwrite.updateExistingFiles fields to allow granular control over actions.

    This is not a breaking change because overwrite=true|false still works.

Patch Changes

v7.2.0

Compare Source

Minor Changes
Patch Changes

v7.1.3

Compare Source

Patch Changes
  • #​10335
    3280ace
    Thanks @​Diluka! - Fix graphql-config loading order to correctly
    detect codegen projects

    Previously, a graphql-config file like this failed:

    projects:
      default:
        schema: 'default/schema.graphql'
      project1:
        schema: 'project1/schema.graphql'
        extensions:
          codegen:
            generates:
              'project1/__generated__/types.ts':
                plugins: ['typescript']

    This is because the default project doesn't have a codegen extension, which caused previous
    logic to short circuit before reading project1's config.

    The fix reads every named project first, before reading the default project to exhaustively go
    through every single project.

v7.1.2

Compare Source

Patch Changes

v7.1.1

Compare Source

Patch Changes

v7.1.0

Compare Source

Minor Changes
Patch Changes

v7.0.1

Compare Source

Patch Changes

v7.0.0

Compare Source

Major Changes
  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: Update deps to latest, some
    only support ESM

    Node 20 support is dropped in this release. Node 22 comes with require() support for ESM, which
    means it's easier to integrate ES modules into applications. Therefore, it is safe to start using
    ESM-only packages.

    If you are a user, please upgrade to Node 22. If you are a lib maintainer and see ESM vs CJS
    issues when running Jest tests, try using Vitest.

  • [#​10496](https://redirect.github.com/dotansimha/graphql-code-generator/p

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the renovate label Sep 9, 2025
@changeset-bot

changeset-bot Bot commented Sep 9, 2025 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 39b840f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from ade1599 to f99e57b Compare October 5, 2025 16:35
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from f99e57b to 208e1f8 Compare October 21, 2025 21:10
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from 36049ec to 0e46044 Compare November 16, 2025 23:53
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 0e46044 to 79c3026 Compare November 20, 2025 14:07
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 79c3026 to f8f0d76 Compare November 29, 2025 05:25
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from f8f0d76 to c2b3e5b Compare December 18, 2025 13:50
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from c2b3e5b to 1e50ad2 Compare December 31, 2025 14:46
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 1e50ad2 to 68096c8 Compare January 11, 2026 12:53
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 68096c8 to 83b8900 Compare February 2, 2026 19:13
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from 8a8f10d to 07b1109 Compare February 18, 2026 14:41
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 07b1109 to 6ef6083 Compare February 22, 2026 17:12
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 5 times, most recently from 43f4cd7 to 20af662 Compare March 13, 2026 11:45
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 20af662 to 4939845 Compare March 26, 2026 18:04
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from 0158575 to 7a9b04e Compare April 19, 2026 08:34
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from dc05f0d to d3a5ac7 Compare May 6, 2026 18:28
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from d3a5ac7 to 3a428a7 Compare May 9, 2026 13:29
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 3a428a7 to 388a9c1 Compare May 18, 2026 19:40
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from 583d28c to 6319bce Compare August 14, 2026 20:40
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from feb312a to 92f3b65 Compare August 23, 2026 18:26
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from 232e93d to d12314f Compare September 7, 2026 17:43
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from b47dbdb to f339adc Compare September 17, 2026 17:34
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from c18a66f to 88fe935 Compare September 24, 2026 23:13
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from 9ec39da to 8e0fbda Compare September 29, 2026 18:59
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 4 times, most recently from df74fc4 to 61bcca6 Compare October 12, 2026 14:45
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 4 times, most recently from 0db4bf5 to 4b59c06 Compare October 26, 2026 23:57
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 5 times, most recently from bc35a3f to 1038212 Compare November 12, 2026 06:42
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 1038212 to 39b840f Compare November 12, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants