Open retorquere opened 1 year ago
I want to visit an AST, but exclude CallExpression arguments. How can I do this? Given the script below, I'm missing almost all identifiers
const { parse } = require('recast') const { visit } = require('ast-types') const src = ` [ () => ((x() ? y() : z()) + y()).len() + (auth(creator).lower(1) + year()).len(">", 0).postfix(_) + title().len(">", 0).lower() + other(), () => x() ] ` const idents = { visitIdentifier(path) { console.log(path.node.name) this.traverse(path) }, visitCallExpression(path) { this.traverse(path.get('callee')) // this.traverse(path) }, } let ast = parse(src) ast = visit(ast, idents)
Could it be because arguments isn't really a node type, but simply an array of nodes? path.get('arguments') doesn't have a type.
arguments
path.get('arguments')
I want to visit an AST, but exclude CallExpression arguments. How can I do this? Given the script below, I'm missing almost all identifiers