/js2coffee

JavaScript to CoffeeScript written in CoffeeScript.

Primary LanguageJavaScriptMIT LicenseMIT

Js2Coffee

Check this project's build status on TravisCI View this project's NPM page

A JavaScript to CoffeeScript compiler

Install

npm install -g js2coffee

CLI Usage

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 Usage

build(content, option)

  • 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: "    "});

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.

Contribute

Discover how you can contribute by heading on over to the CONTRIBUTING.md file

History

You can discover the history inside the HISTORY.md file

License

Licensed under the incredibly permissive MIT License
Copyright © 2011+ Rico Sta. Cruz hi@ricostacruz.com

Thanks

Made possible thanks to the hard work of Js2coffee's dependency projects:

And of course: