graphql-code-generator icon indicating copy to clipboard operation
graphql-code-generator copied to clipboard

fix(visitor-plugin-common): add parent interfaces to interface type

Open gabrielschulhof opened this issue 1 month ago • 2 comments

Much like an ObjectTypeDefinition, an InterfaceTypeDefinition can also have parent interface types. With this change, the output reflects that.

🚨 IMPORTANT: Please do not create a Pull Request without creating an issue first.

Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of the pull request.

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Related #10515.

Type of change

Please delete options that are not relevant.

  • [X] Bug fix (non-breaking change which fixes an issue)
  • [X] New feature (non-breaking change which adds functionality)

Screenshots/Sandbox (if appropriate/relevant):

Adding links to sandbox or providing screenshots can help us understand more about this PR and take action on it as appropriate

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • [x] unit test is included. Also manually added { useImplementingTypes: true } to the new unit test and it fails.

Test Environment:

  • OS: OSX
  • @graphql-codegen/...:
  • NodeJS: 20

Checklist:

  • [x] I have followed the CONTRIBUTING doc and the style guidelines of this project
  • [x] I have performed a self-review of my own code
  • [x] I have commented my code, particularly in hard-to-understand areas
  • [x] My changes generate no new warnings
  • [x] I have added tests that prove my fix is effective or that my feature works
  • [x] New and existing unit tests pass locally with my changes

Further comments

We have some downstream code that becomes unnecessarily complex because we don't have proper type chaining in the case of multiple levels of interfaces.

gabrielschulhof avatar Nov 20 '25 00:11 gabrielschulhof

⚠️ No Changeset found

Latest commit: 60baee9ae23777e6060c52953a97eec2bc373021

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

changeset-bot[bot] avatar Nov 20 '25 00:11 changeset-bot[bot]

Made the code prettier.

gabrielschulhof avatar Nov 24 '25 22:11 gabrielschulhof