flowtypify
generates flowtype definitions from a given JSON Schema. This enables you to type-check the contract your app is working against. Whenever you update the schema, regenerate the flowtype definitions and flow will tell you about breaking changes.
Version-wise its an early Proof of Concept, but the testsuite already covers most of the features I've seen in the wild so far.
Invoking fowtypify
will parse the JSON schemas and output the types to STDOUT
. With --write
enabled, a file with the same basename plus .flow.js
will be created for each supplied schema.
npm install --save-dev flowtypify
./node_modules/.bin/flowtypify --write src/schematas/*.json
Yepp, that's, apart from the lack of any optimizations in flowtypify
, due to your schema not having additionalProperties: false
set on object definitions you have.
Everything in test/scenarios works, the following does not work, yet ;)
- Resolve external
$ref
links - Resolve definitions through
$id
fields (no support for$id
as of JSON Schema Core 9.2 at all, yet) - Transformations
- Change
RootType
name - Transform Type names (e.g. uppercase)
- Custom transformations (e.g.
Optional<*>
types)
- Change
json-schema-to-flow-type
by @dannynelsonjson-schema-to-typescript
by @bcherny