UNPKG

1.95 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.isReactComponent = undefined;
5exports.isCompatTag = isCompatTag;
6exports.buildChildren = buildChildren;
7
8var _index = require("./index");
9
10var t = _interopRequireWildcard(_index);
11
12function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
13
14var isReactComponent = exports.isReactComponent = t.buildMatchMemberExpression("React.Component");
15
16function isCompatTag(tagName) {
17 return !!tagName && /^[a-z]|\-/.test(tagName);
18}
19
20function cleanJSXElementLiteralChild(child, args) {
21 var lines = child.value.split(/\r\n|\n|\r/);
22
23 var lastNonEmptyLine = 0;
24
25 for (var i = 0; i < lines.length; i++) {
26 if (lines[i].match(/[^ \t]/)) {
27 lastNonEmptyLine = i;
28 }
29 }
30
31 var str = "";
32
33 for (var _i = 0; _i < lines.length; _i++) {
34 var line = lines[_i];
35
36 var isFirstLine = _i === 0;
37 var isLastLine = _i === lines.length - 1;
38 var isLastNonEmptyLine = _i === lastNonEmptyLine;
39
40 var trimmedLine = line.replace(/\t/g, " ");
41
42 if (!isFirstLine) {
43 trimmedLine = trimmedLine.replace(/^[ ]+/, "");
44 }
45
46 if (!isLastLine) {
47 trimmedLine = trimmedLine.replace(/[ ]+$/, "");
48 }
49
50 if (trimmedLine) {
51 if (!isLastNonEmptyLine) {
52 trimmedLine += " ";
53 }
54
55 str += trimmedLine;
56 }
57 }
58
59 if (str) args.push(t.stringLiteral(str));
60}
61
62function buildChildren(node) {
63 var elems = [];
64
65 for (var i = 0; i < node.children.length; i++) {
66 var child = node.children[i];
67
68 if (t.isJSXText(child)) {
69 cleanJSXElementLiteralChild(child, elems);
70 continue;
71 }
72
73 if (t.isJSXExpressionContainer(child)) child = child.expression;
74 if (t.isJSXEmptyExpression(child)) continue;
75
76 elems.push(child);
77 }
78
79 return elems;
80}
\No newline at end of file