4.0.16 • Published 2 months ago

ast-monkey-traverse v4.0.16

Weekly downloads
5,884
License
MIT
Repository
github
Last release
2 months ago

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) => {
  // if currently an object is traversed, you get both "key" and "val"
  // if it's array, only "key" is present, "val" is undefined
  let 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.

Contributing

To report bugs or request features or assistance, raise an issue on GitHub.

Licence

MIT License.

Copyright © 2010-2024 Roy Revelt and other contributors.

4.0.16

2 months ago

4.0.15

3 months ago

4.0.14

3 months ago

4.0.12

9 months ago

4.0.13

7 months ago

4.0.10

11 months ago

4.0.11

10 months ago

4.0.9

12 months ago

4.0.8

12 months ago

4.0.7

1 year ago

4.0.5

1 year ago

4.0.4

1 year ago

4.0.6

1 year ago

4.0.1

1 year ago

4.0.3

1 year ago

4.0.2

1 year ago

4.0.0

1 year ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.6

1 year ago

3.1.5

1 year ago

3.1.4

1 year ago

3.0.14

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.0.13

2 years ago

3.0.12

2 years ago

3.0.10

2 years ago

3.0.11

2 years ago

3.0.7

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.1.0

3 years ago

2.0.16

3 years ago

2.0.15

3 years ago

2.0.14

3 years ago

2.0.13

3 years ago

2.0.12

3 years ago

2.0.11

3 years ago

2.0.10

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.13.1

3 years ago

1.13.0

3 years ago

1.12.21

3 years ago

1.12.20

4 years ago

1.12.19

4 years ago

1.12.18

4 years ago

1.12.17

4 years ago

1.12.16

4 years ago

1.12.15

4 years ago

1.12.14

4 years ago

1.12.13

4 years ago

1.12.12

4 years ago

1.12.11

4 years ago

1.12.10

4 years ago

1.12.9

4 years ago

1.12.8

4 years ago

1.12.7

4 years ago

1.12.6

4 years ago

1.12.5

4 years ago

1.12.4

4 years ago

1.12.3

4 years ago

1.12.2

4 years ago

1.12.1

4 years ago

1.12.0

4 years ago

1.11.45

4 years ago

1.11.44

4 years ago

1.11.43

4 years ago

1.11.42

4 years ago

1.11.41

4 years ago

1.11.40

4 years ago

1.11.39

5 years ago

1.11.38

5 years ago

1.11.37

5 years ago

1.11.36

5 years ago

1.11.35

5 years ago

1.11.34

5 years ago

1.11.33

5 years ago

1.11.32

5 years ago

1.11.31

5 years ago

1.11.30

5 years ago

1.11.28

5 years ago

1.11.27

5 years ago

1.11.25

5 years ago

1.11.24

5 years ago

1.11.23

5 years ago

1.11.22

5 years ago

1.11.21

5 years ago

1.11.20

5 years ago

1.11.19

5 years ago

1.11.18

5 years ago

1.11.17

5 years ago

1.11.16

5 years ago

1.11.15

5 years ago

1.11.14

5 years ago

1.11.13

5 years ago

1.11.12

5 years ago

1.11.11

5 years ago

1.11.10

5 years ago

1.11.9

5 years ago

1.11.8

5 years ago

1.11.5

5 years ago

1.11.4

5 years ago

1.11.3

5 years ago

1.11.2

5 years ago

1.11.1

5 years ago

1.11.0

5 years ago

1.10.3

5 years ago

1.10.2

5 years ago

1.10.0

5 years ago

1.9.3

5 years ago

1.9.2

5 years ago

1.9.1

5 years ago

1.9.0

5 years ago

1.5.0

5 years ago

1.4.8

5 years ago

1.4.7

5 years ago

1.4.6

5 years ago

1.4.5

5 years ago

1.4.4

5 years ago

1.4.3

5 years ago

1.4.2

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.3

6 years ago

1.3.2

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago