admin管理员组

文章数量:1319480

I have a project that uses the convo GraphQL, Relay and Flow. Is there a way to use GraphQL schema to feed Flow so the React props can be typed without redeclaring the types?

For Relay I'm already using the script that generates two files: schema.json and schema.graphql. The Babel plugin uses schema.json to translate the queries into javascript.

The other file, schema.graphql looks similar to Flow syntax definition for types, but there are differences. I've tried once to import type {Definition} from "./schema.graphql" from it but was failing silently.

I have a project that uses the convo GraphQL, Relay and Flow. Is there a way to use GraphQL schema to feed Flow so the React props can be typed without redeclaring the types?

For Relay I'm already using the script that generates two files: schema.json and schema.graphql. The Babel plugin uses schema.json to translate the queries into javascript.

The other file, schema.graphql looks similar to Flow syntax definition for types, but there are differences. I've tried once to import type {Definition} from "./schema.graphql" from it but was failing silently.

Share Improve this question edited Aug 11, 2017 at 0:15 jonathancardoso 12.8k8 gold badges54 silver badges73 bronze badges asked Apr 8, 2016 at 7:51 Blai PratdesabaBlai Pratdesaba 1,0511 gold badge8 silver badges11 bronze badges 1
  • There is no ready-to-use way I'm aware about, but I think you can write babel-plugin for it by yourself – gyzerok Commented Apr 8, 2016 at 7:54
Add a ment  | 

2 Answers 2

Reset to default 8

The problem with that is GraphQL scalar-types can be used to represent values in various formats and they do not inherit from a base type you could fall back to for flow.

Scalar can not only verify a "string" but "string of 32 hexadecimal digits". It's not possible to declare this kind of type in flow.

Here are some alternatives: babel-plugin-typecheck, json-to-flow

So after a while I decided to tackle this since our project started to grow and we started to loosen our types. In the end the simplest solution has been to grab the printerSchema and modify it so it outputs flow friendly text, save it to a .js file and point libraries to there.

I'll try to post it in github in a later date

本文标签: javascriptIs it possible to use Graphql generated schema as Flow definitionsStack Overflow