# HoneyBadger
WIP ES2015+ to ES5 transpiler + bundler + minifier in Rust.
Because Webpack+Babel+UglifyJS are both awesome and terrible at the same time.
## Requirements
- Rust 1.8.0
## Usage
To print out the compiled code to stdout:
```
$ cargo run -- -f input.js
```
To compile to a file:
```
$ cargo run -- -f input.js -o output.js
```
## Things that work:
* A basic pipeline for parsing, transofrmation and code generation.
* Can parse and code gen a large chunk of ES2015+ syntax (not all yet, but
getting there).
* The transformer can turn arrow functions into regular function expressions,
adding `.bind(this)` when necessary.
* Object shorthand as well as computed properties get transmuted to ES5.
## Things that are missing:
* Keep track of location of tokens and later on AST constructs in the original
source code.
* Meaningful parse error reporting.
* Any sort of bundling.
* A way to configure which transformations to do, and which to skip.
* Interface with external compilers (Sass, Less, Handlebars), maybe use Neon?
* Think of ways to analize function scopes (necessary for variable name scramling).