A JavaScript to CoffeeScript compiler
npm install -g js2coffee
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
- content String - javascript source code
- option Object - option object
- 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
js2coffee = require('js2coffee');
coffeeContent = js2coffee.build(jstContent, {show_src_lineno: true, indent: " "});
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
js2coffee.org
You can swtich the mode (JS -> Coffee and Coffee -> JS) at the top in the center.
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file
You can discover the history inside the HISTORY.md
file
Licensed under the incredibly permissive MIT License
Copyright © 2011+ Rico Sta. Cruz hi@ricostacruz.com
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