ast-monkey-traverse
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.0 • Public • Published

    ast-monkey-traverse

    Utility library to traverse AST

    Install

    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) => {
      // if currently an object is traversed, you get both "key" and "val"
      // if it's array, only "key" is present, "val" is undefined
      const current = val !== undefined ? val : key;
      if (
        // it's object (not array)
        val !== undefined &&
        // and has the key we need
        key === "foo"
      ) {
        // push the path to array in the outer scope
        paths.push(innerObj.path);
      }
      return current;
    });
    
    // notice object-path notation "a.foo.bar.0.foo" - array segments use dots too:
    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

    ok codsen star

    Install

    npm i ast-monkey-traverse

    DownloadsWeekly Downloads

    12,315

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    86.4 kB

    Total Files

    13

    Last publish

    Collaborators

    • avatar