yieldify

0.0.3 • Public • Published

yieldify

Transpiler for ES6 to ES5 with no runtime component. The design goals of this project are:

  1. Use the esprima parser rather than writing a custom parser. Using the harmony branch gives pretty good support, and if it turns out to be lacking, it can be patched.
  2. Produce output code that is as readable as possible.
  3. Produce output code that is as performant as the input code where possible.

Non goals include:

  1. Performance of the conversion, unless it gets unreasonably slow.
  2. Supporting features that can be "polyfilled"
  3. Supporting the entirety of ES6

In short, this gives you those helpful syntactic shortcuts without the bloat that often acompanies transpilers.

Build Status Dependency Status NPM version

Features supported

  • template strings I am a ${"template"} string
  • classes class Dog extends Animal { constructor() { super('Dog') }}
  • arrow functions var squares = [1, 2, 3, 4].map(x => x * x)

Ironically not yield a this stage :(

Installation

npm install yieldify

CLI

To compile from the CLI you can use a number of methods:

$ yieldify input.js > output.js
$ yieldify < input.js > output.js
$ yieldify input.js output.js
$ yieldify input.js | uglify-js --minify > output.js

You can also compile an entire directory

$ yieldify input output

API

Individual files:

var compile = require('yieldify')
 
fs.writeFileSync('output.js', compile('input.js', fs.readFileSync('input.js', 'utf8')))

Entire direcotries:

var compile = require('yieldify')
 
compile.folder(input, output)

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i yieldify

Weekly Downloads

0

Version

0.0.3

License

MIT

Last publish

Collaborators

  • forbeslindesay