Add --harmony option to jsx.
cpojer committed
Jan 3, 2014 at 00:51 UTC
8dbc530d1cee38289bea0e3e61f4ff89f7340e47
4 files changed
+19
-10
bin/jsx
+14
-5
@@ -2,14 +2,23 @@
2
// -*- mode: js -*-
3
"use strict";
4
5
-var visitors = require('../vendor/fbtransform/visitors').transformVisitors;
5
+var visitors = require('../vendor/fbtransform/visitors');
6
var transform = require('jstransform').transform;
7
8
-require("commoner").version(
9
- require("../package.json").version
8
+require('commoner').version(
9
+ require('../package.json').version
10
).resolve(function(id) {
11
return this.readModuleP(id);
12
-}).process(function(id, source) {
12
+}).option(
13
+ '--harmony',
14
+ 'Turns on JS transformations such as ES6 Classes etc.'
15
+).process(function(id, source) {
16
// This is where JSX, ES6, etc. desugaring happens.
14
- return transform(visitors.react, source).code;
17
+ var visitorList;
18
+ if (this.options.harmony) {
19
+ visitorList = visitors.getAllVisitors();
20
+ } else {
21
+ visitorList = visitors.transformVisitors.react;
22
+ }
23
+ return transform(visitorList, source).code;
24
});
bin/jsx-internal
+2
-2
@@ -2,7 +2,7 @@
2
// -*- mode: js -*-
3
"use strict";
4
5
-var getVisitorsList = require('../vendor/fbtransform/visitors').getVisitorsList;
5
+var getAllVisitors = require('../vendor/fbtransform/visitors').getAllVisitors;
6
var transform = require('jstransform').transform;
7
var propagate = require("../vendor/constants").propagate;
8
@@ -31,7 +31,7 @@ require("commoner").version(
31
var constants = context.config.constants || {};
32
33
// This is where JSX, ES6, etc. desugaring happens.
34
- source = transform(getVisitorsList(), source).code;
34
+ source = transform(getAllVisitors(), source).code;
35
36
// Constant propagation means removing any obviously dead code after
37
// replacing constant expressions with literal (boolean) values.
package.json
+1
-1
@@ -33,7 +33,7 @@
33
"url": "https://github.com/facebook/react"
34
},
35
"dependencies": {
36
- "commoner": "~0.8.12",
36
+ "commoner": "~0.8.13",
37
"esprima-fb": "~2001.1001.0-dev-harmony-fb",
38
"jstransform": "~2.0.2"
39
},
vendor/fbtransform/visitors.js
+2
-2
@@ -41,7 +41,7 @@ var transformRunOrder = [
41
* @param {array?} excludes
42
* @return {array}
43
*/
44
-function getVisitorsList(excludes) {
44
+function getAllVisitors(excludes) {
45
var ret = [];
46
for (var i = 0, il = transformRunOrder.length; i < il; i++) {
47
if (!excludes || excludes.indexOf(transformRunOrder[i]) === -1) {
@@ -51,5 +51,5 @@ function getVisitorsList(excludes) {
51
return ret;
52
}
53
54
-exports.getVisitorsList = getVisitorsList;
54
+exports.getAllVisitors = getAllVisitors;
55
exports.transformVisitors = transformVisitors;