Comments (4)
Hey!
I think this is a great question and interesting problem. I wanted to share how I've solved this especially given some constraints where using flow-type was not possible. In no way I'm saying this is the best way of doing it, but nonetheless I hope this helps.
- You can check the constructor name:
http://jsbin.com/liwiwomayu/edit?js,console
const Foo = function () {};
let foo = new Foo();
console.log(foo.constructor.name);
I hope that is convincing enough, but you can actually find out if something is a GraphQLEnum, GraphQLList, GraphQLObjectType, etc, etc.
But I won't stop here!
Another interesting thing is you can see a graphql object's type config like this:
console.log(someGraphQLObject._typeConfig);
// That will actually output something very close to the code you wrote
// the type name:
console.log(myGqlObject._typeConfig.name);
You could always use typeof
with a bunch of ampersands to do the trick as well. you could also try using instanceof
as well but I think constructor.name
is easier to use.
Another way is creating a special tag like graphType
- in your database for every object and pass it into the Type Resolver function as well.
Hope this helps and honestly I'd love to see what others have done to solve this as well
from graphql-relay-js.
@MattMcFarland Thank you , im finding some way to do a static check.
In abstract concept,this problem is like this:
relayResolver
<- (<-Graphql
->) -> relayResolver
, where Graphql
is a black box. and relayResolver
use a subset of Graphql
's resolver
. So theoretically, it should be a easy static check .
If in a static language ,it is,and should have a standard Template style to solve this. But with javascript, graphql
's code separate source
and args
's type in many places.
I wonder if there is some inner technology like React
's $ flow method
to do this?
Or maybe i should use any
type to make this part as a black-box of Graphql
? (seems its a bad idea).
there is a graphql-relay
fork with flow-typed Graphql .
from graphql-relay-js.
any more work on this?
from graphql-relay-js.
Sorry for the late reply.
This issue is not specific to relay-style mutations and already discussed in the graphql-js repo.
from graphql-relay-js.
Related Issues (20)
- Update master to main HOT 1
- Build error in ./resources/prepublish.sh
- New release? HOT 6
- Return type check problem of mutationWithClientMutationId after 0.7.0 update HOT 3
- Is the peer dependency on graphql exactly 15.5.1 on purpose? HOT 3
- RangeError: Invalid code point HOT 2
- Are filtering operators supported? HOT 1
- isPromise is not a function HOT 3
- Add support for `graphql@v16`
- Can I return a union type on `outputFields`?
- Does anyone use this package with their Nest.js server?
- Merge the `graphql-relay-subcription` into `graphql-relay-js`? HOT 1
- Migrate from `chai` to `jest`?
- 0.10.0 connections causing compile error HOT 3
- To use this plugin is it necessary to get all records from the database with one request?
- filters connectionFromArray HOT 1
- Export pageInfoType
- 0.10.0 has no Flow type support HOT 4
- Make fields on PageInfo type shareable
- Compile error: 'NotSupportedTSVersion.d.ts' is not a module. HOT 1
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-relay-js.