A runtime type system for JavaScript with full Flow compatibility.
See the website for more information.
This project is not very well maintained anymore due to its complexity and maintainers' burnout with Flow in general.
At the moment I need to keep this working in some production projects that use it for API input validation
(using the optInOnly option instead of blanket runtime validation everywhere).
However, I would like to eventually migrate those projects to either:
- a library where I declare validators that I can extract value types from. I created
typescript-validatorsfor this purpose in TypeScript - a very pared-down version of
babel-plugin-flow-runtimethat generates validators where requested from Flow type annotations, but only supports certain types and doesn't automatically inject runtime validation everywhere.
If I had the time I would even migrate my production projects to TypeScript though, so I'm not sure I'll continue to use
Flow and flow-runtime heavily in the long term.
This is a lerna powered mono-repo, composed of the following projects:
- flow-runtime: The core runtime type system.
- babel-plugin-flow-runtime: A babel plugin which transforms Flow type annotations into
flow-runtimeinvocations. - flow-runtime-validators: A collection of common validators for use with flow-runtime.
- flow-config-parser: Parses flow configuration files.
- flow-runtime-mobx: Adds mobx support to flow-runtime.
- flow-runtime-docs: React powered documentation site.
First clone the repo:
git clone https://github.com/gajus/flow-runtime.gitAnd bootstrap the project:
cd flow-runtime
yarn
yarn bootstrap
yarn test