0.2.0 • Published 9 years ago
harmonika v0.2.0
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
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