JavaScript to CoffeeScript compiler
npm install js2coffeeCompile JavaScript into CoffeeScript.


This 2.0 release is a complete rewrite featuring a better parser ([Esprima]).
See what's new in 2.0 for an overview of new features
and consult the migration guide for info on
updating from 0.x.
Available on npm and bower.
``sh`
npm install --global js2coffee
js2coffee --help

Also available via CDN (window.js2coffee):
> [](#version) https://cdn.rawgit.com/js2coffee/js2coffee/v2.1.0/dist/js2coffee.js
The command line utility accepts both filenames or stdin.
`sh`
$ js2coffee file.js [file2.js ...]
$ cat file.js | js2coffee
Available via npm (require('js2coffee')), or via CDN in the browser (as window.js2coffee):
`js
result = js2coffee.build(source);
result.code // code string
result.ast // transformed AST
result.map // source map
result.warnings // array of warnings
`
Errors are in this format:
`js`
catch (e) {
e.message // "index.js:3:1: Unexpected INDENT\n\n 3 var\n ---^"
e.description // "Unexpected INDENT"
e.start // { line: 1, column: 4 }
e.end // { line: 1, column: 10 }
e.sourcePreview // '...'
}
Warnings are in this format:
`js`
result.warnings.forEach((warn) => {
warn.description // "Variable 'x' defined twice
warn.start // { line: 1, column: 4 }
warn.end // { line: 1, column: 9 }
warn.filename // "index.js"
})
- Migration guide - guide for migrating from 0.x.
- Hacking guide - want to contribute? here are tips to get you started.
- AST format - technical description of the CoffeeScript AST format.
- Special cases - a list of edge cases that js2coffee accounts for.
- Compatibility mode - list of tweaks that compatibility mode (--compat`) addresses.
- Goals - outline of the project's goals.
- Specs - examples of how JavaScript compiles to CoffeeScript.
js2coffee © 2012+, Rico Sta. Cruz. Released under the [MIT] License.
Authored by Rico Sta. Cruz with help from co-maintainers and contributors ([list][contributors]).
Maintainers:
* Rico Sta. Cruz (@rstacruz) —
ricostacruz.com · twitter @rstacruz
* Anton Wilhelm (@timaschew) — twitter @timaschew
* Benjamin Lupton (@balupton) —
balupton.com · twitter @balupton
[MIT]: http://mit-license.org/
[contributors]: http://github.com/rstacruz/js2coffee/contributors
[Esprima]: http://esprima.org/