flow2schema Example $ cat example.js type A<T, K> = { t: T, k: K, }; export type X = { a: A<string, boolean>, b: number, }; $ flow2schema -t json-schema example.js { "$schema": "http://json-schema.org/draft-06/schema#", "definitions": { "example::A::string::boolean": { "type": "object", "properties": { "t": {"type": "string"}, "k": {"type": "boolean"} }, "required": ["t", "k"] }, "example::X": { "type": "object", "properties": { "a": {"$ref": "#/definitions/example::A::string::boolean"}, "b": {"type": "number"} }, "required": ["a", "b"] } } } TODO Complete generics support. Errors and warnings. Complete commonjs support. Documentation. Stabilize API. Webpack plugin. Rollup plugin.