silki
Version:
Cli tool for build react app, based on generator-react-multipage, create-react-app, roadhog. Support react multiple pages app develop.
57 lines (55 loc) • 1.59 kB
JavaScript
;
const babylon = require("babylon");
const types = require("babel-types");
const traverse = require("babel-traverse").default;
const generateRandomKey = require("./util");
function parser(content) {
return babylon.parse(content, {
sourceType: "module",
plugins: [
"jsx",
"flow",
"asyncFunctions",
"classConstructorCall",
"doExpressions",
"trailingFunctionCommas",
"objectRestSpread",
"decorators",
"classProperties",
"exportExtensions",
"exponentiationOperator",
"asyncGenerators",
"functionBind",
"functionSent"
]
});
}
module.exports = function transformer(content) {
const inputAst = parser(content);
traverse(inputAst, {
ExpressionStatement: function(ExpressionPath) {
const ExpressionPathNode = ExpressionPath.node;
const AssignmentExpression = ExpressionPathNode.expression;
if (AssignmentExpression.type == "AssignmentExpression") {
const { left, right } = AssignmentExpression;
let leftName = left.name;
if (
right.type == "CallExpression" &&
right.callee &&
right.callee.type == "CallExpression" &&
right.callee.callee &&
right.callee.callee.type == "MemberExpression"
) {
const { object, property } = right.callee.callee;
if (object.name == "Form" && property.name == "create") {
console.log('移除Form.create方法');
ExpressionPath.remove();
}
}
}
}
});
return {
inputAst
};
};