@samitouri / QOS-React-2 / commits / 48e54da484

XJS -> JSX

Part 1: change all of our methods and AST node types. Part 2: Rename files so there is no trace of XJS

Paul O’Shannessy committed Feb 25, 2015 at 11:54 UTC 48e54da484bc3416572fb48bc22d748a60ecd54f
2 files changed +25 -25
vendor/fbtransform/transforms/jsx.js renamed
+5 -5
@@ -11,7 +11,7 @@
11 var Syntax = require('jstransform').Syntax;
12 var utils = require('jstransform/src/utils');
13
14 -function renderXJSLiteral(object, isLast, state, start, end) {
14 +function renderJSXLiteral(object, isLast, state, start, end) {
15 var lines = object.value.split(/\r\n|\n|\r/);
16
17 if (start) {
@@ -75,13 +75,13 @@ function renderXJSLiteral(object, isLast, state, start, end) {
75 utils.move(object.range[1], state);
76 }
77
78 -function renderXJSExpressionContainer(traverse, object, isLast, path, state) {
78 +function renderJSXExpressionContainer(traverse, object, isLast, path, state) {
79 // Plus 1 to skip `{`.
80 utils.move(object.range[0] + 1, state);
81 utils.catchup(object.expression.range[0], state);
82 traverse(object.expression, path, state);
83
84 - if (!isLast && object.expression.type !== Syntax.XJSEmptyExpression) {
84 + if (!isLast && object.expression.type !== Syntax.JSXEmptyExpression) {
85 // If we need to append a comma, make sure to do so after the expression.
86 utils.catchup(object.expression.range[1], state, trimLeft);
87 utils.append(', ', state);
@@ -105,7 +105,7 @@ function trimLeft(value) {
105 return value.replace(/^[ ]+/, '');
106 }
107
108 -exports.renderXJSExpressionContainer = renderXJSExpressionContainer;
109 -exports.renderXJSLiteral = renderXJSLiteral;
108 +exports.renderJSXExpressionContainer = renderJSXExpressionContainer;
109 +exports.renderJSXLiteral = renderJSXLiteral;
110 exports.quoteAttrName = quoteAttrName;
111 exports.trimLeft = trimLeft;
vendor/fbtransform/transforms/react.js
+20 -20
@@ -12,12 +12,12 @@
12 var Syntax = require('jstransform').Syntax;
13 var utils = require('jstransform/src/utils');
14
15 -var renderXJSExpressionContainer =
16 - require('./xjs').renderXJSExpressionContainer;
17 -var renderXJSLiteral = require('./xjs').renderXJSLiteral;
18 -var quoteAttrName = require('./xjs').quoteAttrName;
15 +var renderJSXExpressionContainer =
16 + require('./jsx').renderJSXExpressionContainer;
17 +var renderJSXLiteral = require('./jsx').renderJSXLiteral;
18 +var quoteAttrName = require('./jsx').quoteAttrName;
19
20 -var trimLeft = require('./xjs').trimLeft;
20 +var trimLeft = require('./jsx').trimLeft;
21
22 /**
23 * Customized desugar processor for React JSX. Currently:
@@ -50,20 +50,20 @@ function visitReactTag(traverse, object, path, state) {
50
51 utils.catchup(openingElement.range[0], state, trimLeft);
52
53 - if (nameObject.type === Syntax.XJSNamespacedName && nameObject.namespace) {
53 + if (nameObject.type === Syntax.JSXNamespacedName && nameObject.namespace) {
54 throw new Error('Namespace tags are not supported. ReactJSX is not XML.');
55 }
56
57 // We assume that the React runtime is already in scope
58 utils.append('React.createElement(', state);
59
60 - if (nameObject.type === Syntax.XJSIdentifier && isTagName(nameObject.name)) {
60 + if (nameObject.type === Syntax.JSXIdentifier && isTagName(nameObject.name)) {
61 utils.append('"' + nameObject.name + '"', state);
62 utils.move(nameObject.range[1], state);
63 } else {
64 // Use utils.catchup in this case so we can easily handle
65 - // XJSMemberExpressions which look like Foo.Bar.Baz. This also handles
66 - // XJSIdentifiers that aren't fallback tags.
65 + // JSXMemberExpressions which look like Foo.Bar.Baz. This also handles
66 + // JSXIdentifiers that aren't fallback tags.
67 utils.move(nameObject.range[0], state);
68 utils.catchup(nameObject.range[1], state);
69 }
@@ -73,7 +73,7 @@ function visitReactTag(traverse, object, path, state) {
73 var hasAttributes = attributesObject.length;
74
75 var hasAtLeastOneSpreadProperty = attributesObject.some(function(attr) {
76 - return attr.type === Syntax.XJSSpreadAttribute;
76 + return attr.type === Syntax.JSXSpreadAttribute;
77 });
78
79 // if we don't have any attributes, pass in null
@@ -92,7 +92,7 @@ function visitReactTag(traverse, object, path, state) {
92 attributesObject.forEach(function(attr, index) {
93 var isLast = index === attributesObject.length - 1;
94
95 - if (attr.type === Syntax.XJSSpreadAttribute) {
95 + if (attr.type === Syntax.JSXSpreadAttribute) {
96 // Close the previous object or initial object
97 if (!previousWasSpread) {
98 utils.append('}, ', state);
@@ -125,7 +125,7 @@ function visitReactTag(traverse, object, path, state) {
125
126 // If the next attribute is a spread, we're effective last in this object
127 if (!isLast) {
128 - isLast = attributesObject[index + 1].type === Syntax.XJSSpreadAttribute;
128 + isLast = attributesObject[index + 1].type === Syntax.JSXSpreadAttribute;
129 }
130
131 if (attr.name.namespace) {
@@ -154,9 +154,9 @@ function visitReactTag(traverse, object, path, state) {
154 // Use catchupNewlines to skip over the '=' in the attribute
155 utils.catchupNewlines(attr.value.range[0], state);
156 if (attr.value.type === Syntax.Literal) {
157 - renderXJSLiteral(attr.value, isLast, state);
157 + renderJSXLiteral(attr.value, isLast, state);
158 } else {
159 - renderXJSExpressionContainer(traverse, attr.value, isLast, path, state);
159 + renderJSXExpressionContainer(traverse, attr.value, isLast, path, state);
160 }
161 }
162
@@ -189,8 +189,8 @@ function visitReactTag(traverse, object, path, state) {
189 var lastRenderableIndex;
190
191 childrenToRender.forEach(function(child, index) {
192 - if (child.type !== Syntax.XJSExpressionContainer ||
193 - child.expression.type !== Syntax.XJSEmptyExpression) {
192 + if (child.type !== Syntax.JSXExpressionContainer ||
193 + child.expression.type !== Syntax.JSXEmptyExpression) {
194 lastRenderableIndex = index;
195 }
196 });
@@ -205,9 +205,9 @@ function visitReactTag(traverse, object, path, state) {
205 var isLast = index >= lastRenderableIndex;
206
207 if (child.type === Syntax.Literal) {
208 - renderXJSLiteral(child, isLast, state);
209 - } else if (child.type === Syntax.XJSExpressionContainer) {
210 - renderXJSExpressionContainer(traverse, child, isLast, path, state);
208 + renderJSXLiteral(child, isLast, state);
209 + } else if (child.type === Syntax.JSXExpressionContainer) {
210 + renderJSXExpressionContainer(traverse, child, isLast, path, state);
211 } else {
212 traverse(child, path, state);
213 if (!isLast) {
@@ -234,7 +234,7 @@ function visitReactTag(traverse, object, path, state) {
234 }
235
236 visitReactTag.test = function(object, path, state) {
237 - return object.type === Syntax.XJSElement;
237 + return object.type === Syntax.JSXElement;
238 };
239
240 exports.visitorList = [