Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bouk-decafjs

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bouk-decafjs

A coffeescript to es6 transpiler

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Decaf JS

Build Status

A coffeescript to ES.next transpiler

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

Package last updated on 18 Mar 2016

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc