Socket
Socket
Sign inDemoInstall

decafjs

Package Overview
Dependencies
173
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    decafjs

A coffeescript to es6 transpiler


Version published
Weekly downloads
36
increased by3500%
Maintainers
1
Install size
16.1 MB
Created
Weekly downloads
 

Readme

Source

Decaf JS

Build Status

A coffeescript to ES.next transpiler Try it out online

Decaf grew out of the frustration of having to refactor coffeescript to modern JavaScript syntax. It does that for you automatically.

Because decaf uses the coffeescript compiler under the hood it has an advantage over other coffeescript transpilers. Decaf aims to be able to compile all coffeescript, but it is still a fairly young project. Please try decaf and submit issues if you run into problems, I and a couple of amazing contributors are working hard on completing decaf.

When decaf encounters coffeescript syntax which can't be transpiled to es6 it falls back to using the coffeescript compiler output.

At the moment decaf can transpile a fairly wide range of coffeescript syntax. To get a better idea of which features are supported, please have a look at the test suite.

Using decaf as a cli tool

To use decaf as a cli tool install it first via npm.

npm install decafjs -g (you can also install it locally, but if you are using it for more projects, installing it globally is recommended)

Now simply point decaf at a file or a directory that you want to convert to es6 and tada:

decaf coffee-folder

Using decaf as a code transform

You can require decaf as a node module and simply use it as a transform. We recommend using it with tools like jscodeshift.

To install run npm install decafjs.

To use it simply require it as any other node module:

var decaf = require('decafjs');
var js = decaf.compile('()-> alert "yoyoyo"');

As a second argument, you can parse options to the javascript printer, we use recast to print the js, so any options you pass as a second argument will be passed onto it.

Todo

  • Single and multi-comment lines (can't be done with coffeescript parser, also it's very unintuitive right now to create comment blocks with the ast-types library)

Design choices

  • Coffeescript compiler to build coffeescript syntax tree.
  • Using ast-types, a library for building an esprima compatible syntax tree
  • Using jscodeshift for code optimisation (like automatically declaring undeclared variables)

FAQs

Last updated on 19 Jun 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc