yieldify
Transpiler for ES6 to ES5 with no runtime component. The design goals of this project are:
- Use the esprima parser rather than writing a custom parser. Using the
harmony
branch gives pretty good support, and if it turns out to be lacking, it can be patched. - Produce output code that is as readable as possible.
- Produce output code that is as performant as the input code where possible.
Non goals include:
- Performance of the conversion, unless it gets unreasonably slow.
- Supporting features that can be "polyfilled"
- Supporting the entirety of ES6
In short, this gives you those helpful syntactic shortcuts without the bloat that often acompanies transpilers.
Features supported
- template strings
I am a ${"template"} string
- classes
class Dog extends Animal { constructor() { super('Dog') }}
- arrow functions
var squares = [1, 2, 3, 4].map(x => x * x)
Ironically not yield
a this stage :(
Installation
npm install yieldify
CLI
To compile from the CLI you can use a number of methods:
$ yieldify input.js > output.js
$ yieldify < input.js > output.js
$ yieldify input.js output.js
$ yieldify input.js | uglify-js --minify > output.js
You can also compile an entire directory
$ yieldify input output
API
Individual files:
var compile = fs
Entire direcotries:
var compile = compile
License
MIT