harmonika

0.2.0 • Public • Published

Harmonika

Harmonika

Harmonika parse your Closure code to ES6. Extended from existing project xto6, with additional on-going features to support Closure.

Install

$ npm install harmonika

Run Example

$ harmonika  -s input_files/ins/sample0.js

Developing

Clone from github

$ npm install
$ grunt
$ node bin/index.js --help

Directory Structure

* bin /
  | - index.js (main entry)
* input_files /(sample)
* src /
  | - syntax /
      | - AST representation (reference Mozilla Parser AST)
  | - transformation / (list of parser function)
  | - utils / (string->ast && ast -> string library)
* test /

Previous project existing features

  • Function/Prototypes to Classes
  • Callback to Arrow functions
  • String concatenation to Template Strings
  • Using let and const instead of var
  • Default arguments instead of a = a || 2
  • Function properties in objects to Object methods

Added features

  • Remove Namespace
  • Convert Google Closure code (goog.require, goog.provide, goog.inherits, goog.isDefinedAndNotNull) to compatible ES6 features
  • Convert Closure annotation to Flow type (Currently support : @param, @type, @typedef, @return) and Import/Export type
  • Detect Inheritance (super call, extend)
  • Improve constructor to support arguments
  • import support
  • export support
  • Implicit import (import all undefined identifier)
  • static method
  • static properties
  • Base class method call using super
  • Improve let/const to understand object assignment
  • Singleton export

To-do Features

Package Sidebar

Install

npm i harmonika

Weekly Downloads

1

Version

0.2.0

License

MIT

Last publish

Collaborators

  • semmatabei