Skip to content
This repository has been archived by the owner on Sep 20, 2022. It is now read-only.

Deduplicate types #13

Closed
lifeiscontent opened this issue Oct 17, 2017 · 5 comments
Closed

Deduplicate types #13

lifeiscontent opened this issue Oct 17, 2017 · 5 comments

Comments

@lifeiscontent
Copy link

is there a way to merge all duplicate types into 1?

e.g. 2 query types into 1, and any other type?

@Yogu
Copy link
Member

Yogu commented Oct 18, 2017

Currently, only the root types, i.e. Query, Mutation and Subscription are merged, other types will cause an error if they are not prefixed with typePrefix.

I think some kind of type conflict resolution would be useful, but merging types is not neccessarily what you want - maybe you want to only keep fields that are present on both types? What about interfaces and the type description? Conflicting fields in the types? There are many corner cases.

I think we could provide a callback that handles type conflicts - multiple types with the same name go in, one type for them all goes out. You would however need to implement the type merging yourself, then. Would that help for your use case?

@lifeiscontent
Copy link
Author

@Yogu yeah, maybe something like what graphql-tools offers, e.g. onTypeConflict: (left, right) => mergeType(left,right);

@flux627
Copy link

flux627 commented Mar 22, 2018

I'm using this to weave multiple PostGraphile endpoints. The scalar types are always the same, so it would be great to de-dupe them to avoid including a prefixed type when defining query input parameters. This is a backend implementation detail, which ideally should not be leaking to front-end concerns.

The solution @Yogu outlined above would work for us. Is this already possible using custom transformations?

@Yogu
Copy link
Member

Yogu commented Mar 23, 2018

@lifeiscontent I agree that this would be a good addition. I'm just pretty busy at the moment, I hope this improves in a few weeks.

@flux627 Custom transformations already allow you to replace types with anything you like. For the deduplication, I already wrote a comment here: #12 (comment)

@ralphkocher
Copy link

Any news on that? This feature would be very nice to have :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants