README
js2coffee
A JavaScript to CoffeeScript compiler
Install
NPM
- Use:
require('js2coffee')
- Install:
npm install --save js2coffee
Browserify
- Use:
require('js2coffee')
- Install:
npm install --save js2coffee
- CDN URL:
//wzrd.in/bundle/js2coffee@0.3.1
Ender
- Use:
require('js2coffee')
- Install:
ender add js2coffee
Command Line Interface
- Install:
npm install -g js2coffee
Usage
CLI
Use:
js2coffee input_file.js js2coffee input_file.js > output.coffee cat input.js | js2coffee
You can pass some options:
--version # Show js2coffee version --verbose # Be verbose --no_comments # Do not translate comments --show_src_lineno # Show src lineno's as comments --single_quotes # Use single quoted string literals - default double quoted --help # If you need help --indent # Specify the indent character(s) - default 2 spaces
API
js2coffee = require('js2coffee');
coffeeContent = js2coffee.build(jstContent, {show_src_lineno: true, indent: " "});
require('js2coffee').build(content, options)
, arguments:- content String - javascript source code
- options Object - options object, available options:
- no_comments Boolean - ignore comments, if true
- show_src_lineno Boolean - show source line numbers in each line as comment, if true
- indent String - specify indent
- single_quotes Boolean - use single quoted string literals instead of double quoted
Known issues
Js2coffee has some kown issues
- switch statements have always implict returns at the end of a function - #250
- some switch statements fail - switch
- CoffeeScript keywords become converted with an trailing underscore - keywords
- Narcissus fails to parse JavaScript keywords as object properties - narcissus
- some IIFE syntaxes fail - #190
- Empty function declrations within if statements fail - #162
Try out in the browser
js2coffee.org
You can swtich the mode (JS -> Coffee and Coffee -> JS) at the top in the center.
History
Discover the change history by heading on over to the HISTORY.md
file.
Contribute
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
Backers
Maintainers
These amazing people are maintaining this project:
- Rico Sta. Cruz hi@ricostacruz.com (http://ricostacruz.com)
- Benjamin Lupton b@lupton.cc (https://github.com/balupton)
- Anton Wilhelm timaschew@gmail.com (https://github.com/timaschew)
Sponsors
No sponsors yet! Will you be the first?
Contributors
These amazing people have contributed code to this project:
- Anton Wilhelm timaschew@gmail.com — view contributions
- Benjamin Lupton b@lupton.cc — view contributions
- clkao — view contributions
- codelahoma — view contributions
- dburt — view contributions
- ForbesLindesay — view contributions
- gabipurcaru — view contributions
- grandquista — view contributions
- joelvh — view contributions
- karlbohlmark — view contributions
- MichaelBlume — view contributions
- michaelficarra — view contributions
- MissingHandle — view contributions
- nateschiffer — view contributions
- nilbus — view contributions
- rstacruz — view contributions
- thoka — view contributions
- tricknotes — view contributions
- tsantef — view contributions
- twilson63 — view contributions
- wlaurance — view contributions
License
Licensed under the incredibly permissive MIT license
Copyright © 2011+ Rico Sta. Cruz hi@ricostacruz.com (http://ricostacruz.com)
Thanks
Made possible thanks to the hard work of Js2coffee's dependency projects:
- Narcissus, Mozilla's JavaScript engine
- Node Narcissus, the Node port of Narcissus
- Underscore.js
And of course:
- Jeremy Ashkenas's CoffeeScript