Mapped types are dropped when combined with unions at non-trivial depth.
See original GitHub issueIssue workflow progress
Progress of the issue based on the Contributor Workflow
- 1. The issue provides a reproduction available on Github, Stackblitz or CodeSandbox
Make sure to fork this template and run yarn generate
in the terminal.
Please make sure the Codegen and plugins version under package.json
matches yours.
-
2. A failing test has been provided
-
3. A local solution has been provided
-
4. A pull request is pending review
Describe the bug The resolver type for a type that contains a type that contains a union of types that are mapped, drops knowledge of the mapped type.
That a mouthful, but here is a minimal reproduction:
To Reproduce LIve Code Sandbox: https://codesandbox.io/s/inspiring-shape-ts0t5
- My GraphQL schema:
type Query {
feed: FeedConnection!
}
type FeedConnection {
edge:FeedEdge
}
type FeedEdge {
node: FeedNode
}
union FeedNode = PostFeedNode | PhotoFeedNode
type PostFeedNode {
text:String
}
type PhotoFeedNode {
url:String
}
-
My GraphQL operations: N/A
-
My
codegen.yml
config file:
schema: schema.graphql
generates:
types.ts:
plugins:
- typescript
- typescript-resolvers
config:
mappers:
PostFeedNode: ./model#PostFeedNodeModel
PhotoFeedNode: ./model#PhotoFeedNodeModel
Expected behavior
The resolver type should be:
FeedConnection:ResolverTypeWrapper<Omit<FeedConnection, 'edge'> & { node?: Maybe<ResolversTypes['FeedEdge']> }>;
But the generated type is:
FeedConnection: ResolverTypeWrapper<FeedConnection>;
Issue Analytics
- State:
- Created 2 years ago
- Comments:6 (1 by maintainers)
Also bumped into this today!
Checking should be as easy as upgrading my repro to the latest version of the codegen.