$ npm 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 traverse
node
: 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 moonwalk
traverse(node, callback)
walk
's callbackparse(src)
@babel/parser
by default).© 2010 - cnpmjs.org x YWFE | Home | YWFE