$ cnpm install node-source-walk
Synchronously execute a callback on every node of a file's AST and stop walking whenever you see fit.
npm install node-source-walk
const Walker = require('node-source-walk');
const walker = new Walker();
// Assume src is the string contents of myfile.js
// or the AST of an outside parse of myfile.js
walker.walk(src, node => {
if (node.type === whateverImLookingFor) {
// No need to keep traversing since we found what we wanted
walker.stopWalking();
}
});
By default, Walker will use @babel/parser (supporting ES6, JSX, Flow, and all other available @babel/parser plugins) and the sourceType: module, but you can change any of the defaults as follows:
const walker = new Walker({
sourceType: 'script',
// If you don't like experimental plugins
plugins: [
'jsx',
'flow'
]
});
@babel/parser's documentation.If you want to supply your own parser, you can do:
const walker = new Walker({
parser: mySweetParser
});
.parse method that takes in a string and returns an object/AST.walk(src, callback)src from top to bottomsrc: the contents of a file or its (already parsed) ASTcallback: a function that is called for every visited node
callback will be the currently visited node.moonwalk(node, callback)walk and traversenode: a valid AST nodecallback: a function that is called for every node (specifically via visiting the parent(s) of every node recursively)
callback will be the currently visited node.stopWalking()walk or moonwalktraverse(node, callback)walk's callbackparse(src)@babel/parser by default).Copyright 2013 - present © cnpmjs.org | Home |