ast-monkey-traverse
Utility library to traverse AST
Install
This package is pure ESM. If you're not ready yet, install an older version of this program, 2.1.0 (npm i ast-monkey-traverse@2.1.0
).
npm i ast-monkey-traverse
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) => {
let 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.
Contributing
To report bugs or request features or assistance, raise an issue on GitHub.
Licence
MIT License.
Copyright © 2010-2023 Roy Revelt and other contributors.