Я хочу сделать две замены в моем плагине babel. И вторая замена должна произойти только после первого.Babel plugin (шаблон для посетителей) - Как это работает
module.exports = function(babel) {
const t = babel.types;
return {
visitor: {
FunctionExpression: function(path) {
//Conversion to arrow functions
path.replaceWith(t.arrowFunctionExpression(path.node.params, path.node.body, false));
},
ThisExpression: function(path) {
//Converting all this expressions to identifiers so that it won't get translated differently
path.replaceWith(t.identifier("this"));
}
}
};
}
В дереве AST моего «FunctionExpression» «ThisExpression» существует где-то вниз по дереву. Я хочу, чтобы первое преобразование произошло только после завершения второго преобразования. Как мне это достичь?