ast-monkey-traverse
Utility library to traverse AST
Install
This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required:
npm i ast-monkey-traverse
If you need a legacy version which works with require
, use version 2.1.0
Quick Take
import { strict as assert } from "assert";
import { traverse } from "ast-monkey-traverse";
const paths = [];
const source = {
a: {
foo: {
bar: [
{
foo: "c",
},
],
d: {
e: {
foo: "f",
},
},
},
},
};
traverse(source, (key, val, innerObj) => {
const current = val !== undefined ? val : key;
if (
val !== undefined &&
key === "foo"
) {
paths.push(innerObj.path);
}
return current;
});
assert.deepEqual(paths, ["a.foo", "a.foo.bar.0.foo", "a.foo.d.e.foo"]);
Documentation
Please visit codsen.com for a full description of the API and examples.
Contributing
To report bugs or request features or assistance, raise an issue on GitHub.
Licence
MIT License
Copyright (c) 2010-2021 Roy Revelt and other contributors