change acorn-ast-types to internal builders
This commit is contained in:
parent
e141a8b875
commit
ea7ac4cd2d
46
lib/6to5/builders.js
Normal file
46
lib/6to5/builders.js
Normal file
@ -0,0 +1,46 @@
|
||||
var _ = require("lodash");
|
||||
|
||||
var build = function (type, keys) {
|
||||
return function () {
|
||||
var args = arguments;
|
||||
var node = { type: type };
|
||||
_.each(keys, function (key, i) {
|
||||
node[key] = args[i];
|
||||
});
|
||||
return node;
|
||||
};
|
||||
};
|
||||
|
||||
exports.identifier = build("Identifier", ["name"]);
|
||||
|
||||
exports.literal = build("Literal", ["value"]);
|
||||
|
||||
exports.functionExpression = build("FunctionExpression", ["id", "params", "body"]);
|
||||
|
||||
exports.returnStatement = build("ReturnStatement", ["argument"]);
|
||||
|
||||
exports.assignmentExpression = build("AssignmentExpression", ["operator", "left", "right"]);
|
||||
|
||||
exports.ifStatement = build("IfStatement", ["test", "consequent", "alternate"]);
|
||||
|
||||
exports.callExpression = build("CallExpression", ["callee", "arguments"]);
|
||||
|
||||
exports.blockStatement = build("BlockStatement", ["body"]);
|
||||
|
||||
exports.memberExpression = build("MemberExpression", ["object", "property", "computed"]);
|
||||
|
||||
exports.variableDeclaration = build("VariableDeclaration", ["kind", "declarations"]);
|
||||
|
||||
exports.variableDeclarator = build("VariableDeclarator", ["id", "init"]);
|
||||
|
||||
exports.arrayExpression = build("ArrayExpression", ["elements"]);
|
||||
|
||||
exports.binaryExpression = build("BinaryExpression", ["operator", "left", "right"]);
|
||||
|
||||
exports.expressionStatement = build("ExpressionStatement", ["expression"]);
|
||||
|
||||
exports.thisExpression = build("ThisExpression");
|
||||
|
||||
exports.objectExpression = build("ObjectExpression", ["properties"]);
|
||||
|
||||
exports.property = build("Property", ["kind", "key", "value"]);
|
||||
@ -5,7 +5,7 @@ var SHEBANG_REGEX = /^\#\!.*/;
|
||||
var transform = require("./transform");
|
||||
var generate = require("./generator");
|
||||
var util = require("./util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("./builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
function File(opts) {
|
||||
|
||||
@ -2,7 +2,7 @@ module.exports = AMDFormatter;
|
||||
|
||||
var CommonJSFormatter = require("./common");
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
function AMDFormatter(file) {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
module.exports = CommonJSFormatter;
|
||||
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
|
||||
function CommonJSFormatter(file) {
|
||||
this.file = file;
|
||||
|
||||
@ -2,7 +2,7 @@ module.exports = UMDFormatter;
|
||||
|
||||
var AMDFormatter = require("./amd");
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
function UMDFormatter(file) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
var traverse = require("../traverse");
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
|
||||
var go = function (getBody, node, file) {
|
||||
var argumentsId;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
module.exports = function (ast, file) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
|
||||
var single = function (node) {
|
||||
var block = node.blocks[0];
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
var traverse = require("../traverse");
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
exports.ClassDeclaration = function (node, parent, file) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
exports.ObjectExpression = function (node, parent, file) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
var traverse = require("../traverse");
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
var buildVariableAssign = function (kind, id, init) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
|
||||
exports.ForOfStatement = function (node, parent, file) {
|
||||
var left = node.left;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
// https://github.com/RReverser/jsx-transpiler
|
||||
|
||||
var esutils = require("esutils");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
var JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/;
|
||||
@ -11,9 +11,7 @@ exports.Program = function (node, parent, file) {
|
||||
var jsx = "React.DOM";
|
||||
|
||||
// looking for namespace annotation
|
||||
_.each(node.comments, function (comment) {
|
||||
if (!comment.possiblyLeading) return;
|
||||
|
||||
_.each(node.leadingComments, function (comment) {
|
||||
var matches = JSX_ANNOTATION_REGEX.exec(comment.value);
|
||||
if (matches) jsx = matches[1];
|
||||
});
|
||||
@ -64,10 +62,13 @@ exports.XJSAttribute = {
|
||||
exports.XJSOpeningElement = {
|
||||
exit: function (node, parent, file) {
|
||||
var tagExpr = node.name;
|
||||
var tagName = tagExpr.name;
|
||||
|
||||
if (/[a-z]/.exec(tagName[0]) || _.contains(tagName, "-")) {
|
||||
tagExpr = b.memberExpression(file.jsx, tagExpr, false);
|
||||
if (tagExpr.type === "Identifier") {
|
||||
var tagName = tagExpr.name;
|
||||
|
||||
if (/[a-z]/.exec(tagName[0]) || _.contains(tagName, "-")) {
|
||||
tagExpr = b.memberExpression(file.jsx, tagExpr, false);
|
||||
}
|
||||
}
|
||||
|
||||
var props = node.attributes;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
var traverse = require("../traverse");
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
exports.VariableDeclaration = function (node, parent, file) {
|
||||
|
||||
2
lib/6to5/transformers/react.js
vendored
2
lib/6to5/transformers/react.js
vendored
@ -1,4 +1,4 @@
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
var addDisplayName = function (id, call) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
|
||||
exports.Function = function (node, parent, file) {
|
||||
if (!node.rest) return;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var util = require("../util");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
var getSpreadLiteral = function (spread, file) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
var buildBinaryExpression = function (left, right) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var rewritePattern = require("regexpu/rewrite-pattern");
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
var _ = require("lodash");
|
||||
|
||||
exports.Literal = function (node) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var b = require("acorn-ast-types").builders;
|
||||
var b = require("../builders");
|
||||
|
||||
module.exports = function (ast, file) {
|
||||
var body = ast.program.body;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user