Skip to content

Update graphqlcodegenerator monorepo (major) - #27

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 Apr 30, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@graphql-codegen/cli (source) ^6.3.1^7.0.0 age confidence
@graphql-codegen/client-preset (source) ^5.3.0^6.0.0 age confidence

Release Notes

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

v7.4.2

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
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: Drop Node 20 support

  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: Set noSilentErrors: true
    by default

    When multiple files match documents pattern, and there are syntax errors in some but not others,
    then the operations with errors are not included in the loaded documents list by default
    (noSilentErrors: false). This is annoying for users as there is no feedback loop during
    development.

    noSilentErrors: true is used as the default for Codegen users to make the feedback loop faster.
    It can still overriden in Codegen Config if desired.

Patch Changes
dotansimha/graphql-code-generator (@​graphql-codegen/client-preset)

v6.2.0

Minor Changes
  • #​10946
    a6a3348
    Thanks @​eddeee888! - Add skipIndexFile preset config option to
    client-preset to allow disabling generation of the index.ts barrel file that re-exports the
    other generated files. Defaults to false (unchanged behavior); set to true to skip generating
    index.ts, for example when your project avoids barrel files for tree-shaking or lint rule
    reasons.
Patch Changes
  • b545f6b
    Thanks @​eddeee888! - Add /* eslint-disable */ to the generated
    index.ts barrel file, matching the other files generated by client-preset (graphql.ts,
    gql.ts, fragment-masking.ts), which already had it.

v6.1.3

Compare Source

Patch Changes

v6.1.2

Compare Source

Patch Changes

v6.1.1

Compare Source

Patch Changes

v6.1.0

Compare Source

Minor Changes
Patch Changes

v6.0.1

Compare Source

Patch Changes

v6.0.0

Compare Source

Major Changes
  • #​10496
    afaace6
    Thanks @​eddeee888! - Fix nullable field optionality in operations

    Previously, a nullable Result field is generated as optional (marked by ? TypeScript modifier)
    by default. This is not correct, because generally at runtime such field can only be null, and
    not undefined (both missing from the object OR undefined). The only exceptions are when fields
    are deferred (using @defer directive) or marked as conditional (using @skip or @include).

    Now, a nullable Result field cannot be optional unless the exceptions are met. This also limits
    avoidOptionals to only target Variables input, since some users may want to force explicit
    null when providing operation variables.

  • #​10496
    afaace6
    Thanks @​eddeee888! - Conditionally generate input types and output
    enums into target file

  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: make unknown instead of
    any the default custom scalar type

  • #​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
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: Drop Node 20 support

  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: typescript plugin no
    longer generates Exact utility type. Instead, typescript-operations generates said utility
    type for every file it creates. This is because it is used only for Variables, so we only need
    to generate it once for every generated operation file.

  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: Operation plugin and Client
    Preset no longer generates optional __typename for result type

    __typenam should not be in the request unless:

    • explicitly requested by the user
    • automatically injected into the request by clients, such as Apollo Clients.

    Note: Apollo Client users can still use nonOptionalTypename: true and
    skipTypeNameForRoot: true to ensure generated types match the runtime behaviour.

  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGES: The default hashing
    algorithm is now sha256 instead of sha1. Generated sha256 format also follows the standard
    outlined in
    https://github.com/graphql/graphql-over-http/blob/52d56fb36d51c17e08a920510a23bdc2f6a720be/spec/Appendix%20A%20--%20Persisted%20Documents.md#sha256-hex-document-identifier

  • #​10496
    afaace6
    Thanks @​eddeee888! - Integrate new typescript-operations into
    client-preset

  • #​10496
    afaace6
    Thanks @​eddeee888! - BREAKING CHANGE: config.avoidOptionals now
    only supports object, inputValue, defaultValue

Patch Changes

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 force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 7cb5684 to 9f3a607 Compare May 12, 2026 11:54
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from 4fba5ae to af22415 Compare June 1, 2026 17:36
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from af22415 to 6dc2cfb Compare June 16, 2026 17:37
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from e63fd9d to 62add95 Compare July 12, 2026 11:59
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from 2a15403 to 7a1cee6 Compare July 24, 2026 21:31
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from 7a54551 to b50a15f Compare August 5, 2026 11:38
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 4 times, most recently from 7229694 to 3a7c172 Compare August 14, 2026 22:43
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from 0bde9fd to 12edff2 Compare August 26, 2026 18:17
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 3 times, most recently from 1af6b3e to ad5107f Compare September 7, 2026 18:09
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch 2 times, most recently from c31df27 to 81a4e68 Compare September 13, 2026 10:00
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from 81a4e68 to c50a7db Compare September 19, 2026 09:45
@renovate
renovate Bot force-pushed the renovate/major-graphqlcodegenerator-monorepo branch from c50a7db to f8875d0 Compare September 20, 2026 05:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants