Build Status Dependency Status devDependency Status

crow

crow transpiles Crystal source code to valid Flow/ES2015/JavaScript).

Code that is transpiled to valid Flow syntax may be transpiled to valid ES2015, which may be transpiled to Javascript (via Babel).

Installation

npm install crow-cli -g

Usage

# Compiles and outputs to foo.js.flow
$ crow foo.cr

# Same as above
$ cat foo.cr | crow > foo.js.flow

# Compile to JavaScript (via Babel)
$ npm install babel-preset-es2015 babel-plugin-transform-flow-strip-types
$ crow foo.cr |  babel --plugins transform-flow-strip-types --presets es2015

You can also use Docker:

$ cat foo.cr | docker run -i geppetto-apps/crow > foo.js.flow

Development

You need to have a copy of the Crystal source code sitting in a directory next to crow.

Supported AST nodes

Extracted from [Crystal's compiler][cr-parser].

Contributing

  1. Fork it ( https://github.com/geppetto-apps/crow/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors