Giter VIP home page Giter VIP logo

flowcheck's Introduction

Why?

Use types annotations today, even if you don't actually use Flow (or TypeScript). Then strip the assertions in production.

Flowcheck comes with a built-in browserify transformer and supports sourcemaps for a seamless workflow integration.

You can even use Flowcheck as a general purpose validation library.

How it works?

Flowcheck adds asserts for each type annotation using jstransform.

If an assert fails the debugger kicks in so you can inspect the stack and quickly find out what's wrong.

Demo live

https://gcanti.github.io/flowcheck

Workflow

  1. Write your code adding type annotations
  2. (optional) enable the Flow static type checker
  3. enable Flowcheck.js and strip type annotations (with react-tools or 6to5) during development
  4. disable Flowcheck.js in production for zero overhead

Differences with flow

  • Flowcheck tuples are fixed-length arrays #227

Modules

  • a source transformer (transform.js)
  • a browserify transformer (index.js)
  • a runtime assertion library (assert.js)

The transformer adds assertions for each type annotation.

The assertion module checks the types at runtime. If an assert fails the debugger kicks in so you can inspect the stack and quickly find out what's wrong.

Tests

npm test

License

MIT

flowcheck's People

Contributors

gcanti avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

rubythonode

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.