es6-comprehensions
Compiles JavaScript array comprehensions (proposed in ES6) to ES5-compatible syntax. For instance:
var squared = [ for (x of [1,2,3,4,5]) if (x > 2) x * x ];
compiles to:
var squared = (function() {
var result = [];
for (var i_0 = 0, arr_0 = [1,2,3,4,5], len_0 = arr_0.length, x; i_0 < len_0; i_0++) {
x = arr_0[i_0];
if (x > 2) {
result.push(x * x);
}
}
return result;
})();
For more information check out the current draft for ECMAScript 6.
Please notice that the syntax has changed and many resources is still using old one.
Installation
$ npm install es6-comprehensions
Support
Array comprehensions progressed to the Draft ECMAScript 6 Specification. It doesn't mean that there will be no changes or that array comprehensions will be included in the final ES6 Specification.
ES6 defines also iterators that can be used together with for-of loops that can be used in array comprehensions. This translator does not support iterators in for-of
loops. It translates for-of
loops to plain for
loops. Thus, it supports only plain JS arrays.
TODO
- Provide support for other structures, not only plain JS arrays,
- Improve quality of the generated code,
- Think of migration to escodegen instead of recast.
Development
- Clone the repository.
- Run
npm install
. - Do your changes.
Pull requests are highly appreciated.
License
BSD