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 * input_files /* src / | - syntax / | - AST representation | - transformation / | - utils / * test /
Previous project existing features
- Function/Prototypes to Classes
- Callback to Arrow functions
- String concatenation to Template Strings
- Using
let
andconst
instead ofvar
- 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
supportexport
support- Implicit import (import all undefined identifier)
static
methodstatic
properties- Base class method call using
super
- Improve let/const to understand object assignment
- Singleton export