Skip to content

chore(deps): update dependency @graphql-tools/utils to v13.2.0 - #1623

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/graphql-tools-monorepo
Oct 26, 2026
Merged

renovate[bot] merged 1 commit into
mainfrom
renovate/graphql-tools-monorepo

Conversation

@renovate

@renovate renovate Bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@graphql-tools/utils (source) 13.1.3 → 13.2.0 age confidence

Release Notes

ardatan/graphql-tools (@​graphql-tools/utils)

v13.2.0

Compare Source

Minor Changes
  • #​8606 6da2904 Thanks @​ardatan! - loadDocuments / loadTypedefs now accept errorHandling so a single invalid file does not have to hide the rest of the load.

    A glob that mixes a valid operation with broken SDL used to throw the first Syntax Error and drop every other file:

    # valid.query.graphql
    query ValidQuery {
      a
    }
    # broken-a.query.graphql
    query {
      a
    await loadDocuments('**/*.query.graphql', {
      loaders: [new GraphQLFileLoader()],
    });
    // throws Syntax Error

    errorHandling chooses what happens next. The default is unchanged (throw the first error).

    aggregate waits until every source is attempted, then throws AggregateError with each parse/load failure:

    await loadDocuments('**/*.query.graphql', {
      loaders: [new GraphQLFileLoader()],
      errorHandling: 'aggregate',
    });

    return does not throw. Failed sources stay in the result as { location, error } without a document, next to the sources that parsed:

    const sources = await loadDocuments('**/*.query.graphql', {
      loaders: [new GraphQLFileLoader(), new CodeFileLoader()],
      errorHandling: 'return',
    });
    
    sources[0].document; // ValidQuery
    sources[1].document; // undefined
    sources[1].error; // GraphQLError: Syntax Error

    Source now has an optional error field. @graphql-tools/graphql-file-loader and @graphql-tools/code-file-loader honor the same option. CodeFileLoader's existing noSilentErrors default is unchanged unless errorHandling is set.

    Custom loader failures and incomplete inline documents (query Foo {) follow the same option. errorHandling: 'throw' raises the first failure, not AggregateError.

Patch Changes
  • #​8588 7770067 Thanks @​ardatan! - rewireTypes (used by mapSchema and addTypes) now recreates only the types that actually reference a replaced type.

    mapSchema already changes just the mapped types. rewireTypes then walked every type and built a new GraphQLObjectType / enum / scalar so field pointers stayed consistent. That is correct, and it is overkill when a pipeline maps one type on a large schema: unrelated types, unused enums, and unused scalars were cloned on every pass.

    The crawl now finds types whose field, argument, interface, or union members point at a different object than the type map (including wrapper types created during mapping), then rebuilds only that set. Specified directives stay as-is. Types that do not reach a replacement keep the same JavaScript object.

    createStub returns the graphql-js specified scalars for String / ID / Int / Float / Boolean instead of building an object or input with that name. Stitch typeFromAST uses createStub for every field type.

    const schema = buildSchema(/* GraphQL */ `
      scalar Unused
      enum Color { RED }
      type Query { foo: Foo }
      type Foo { id: ID }
    `)
    
    const mapped = mapSchema(schema, {
      [MapperKind.OBJECT_TYPE]: type =>
        type.name === 'Foo'
          ? new GraphQLObjectType({ ...type.toConfig(), description: 'mapped' })
          : undefined,
    })
    
    mapped.getType('Unused') === schema.getType('Unused')
    mapped.getType('Color') === schema.getType('Color')
  • #​8608 f956bfe Thanks @​ardatan! - transformInputValue now keeps falsy list items when GraphQL coerces a singleton into a list.

    A [String] / [Int] / [Boolean] field can receive "", 0, or false instead of a one-element array. The previous asArray helper treated those as empty and produced [], so rename and other input transforms dropped a valid value. null is still returned as-is. A real list is still walked item by item.


Configuration

📅 Schedule: (in timezone Asia/Tokyo)

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

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • 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 enabled auto-merge (squash) October 26, 2026 22:07
@renovate
renovate Bot merged commit f054769 into main Oct 26, 2026
0 of 2 checks passed
@renovate
renovate Bot deleted the renovate/graphql-tools-monorepo branch October 26, 2026 22:09
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