Comments (5)
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?
from graphql-weaver.
@Yogu yeah, maybe something like what graphql-tools offers, e.g. onTypeConflict: (left, right) => mergeType(left,right);
from graphql-weaver.
@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)
from graphql-weaver.
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?
from graphql-weaver.
Any news on that? This feature would be very nice to have :-)
from graphql-weaver.
Related Issues (20)
- Misbehavior for scalar type , maybe an edge case ? HOT 5
- Woven Schemas lose their astNodes HOT 2
- Directives, especially and primarily, default ones, get duplicated for each schema HOT 1
- Linked field returns null when using linkFieldName HOT 6
- Create a schema from already weaved schemas
- Documentation on links, pipelines, fieldMetadata and more insufficient
- Apollo's schema stiching
- LaunchPad graphql endpoints no longer available HOT 1
- Support `skip` argument with @join
- woking with uploads via apollo-upload-server HOT 1
- Launchpad example broken
- Links return an error when recommendation service sets typePrefix HOT 7
- [FEATURE REQUEST]: Ability to include HTTP headers HOT 1
- Authenticating User at API Gateway and then redirecting them to microservices HOT 7
- How to rename fields properly?
- Some implementations lost after weaveSchemas HOT 3
- GraphQL 15 compatibility HOT 1
- Cannot read property 'map' of undefined (link issue with undefined variableDefinitions)
- Upgrade graphql-tools dependency to 6.x.x
- Change introspectionQuery to getIntrospectionQuery
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphql-weaver.