Back to Explore

Rich-Harris/estree-walker

GitHub
2 watchersOpen source

Last release:

estree-walker is a small JavaScript utility for traversing an ESTree-compliant AST, such as one generated by acorn. It provides enter and leave visitor hooks for inspecting, skipping child traversal, replacing nodes, or removing nodes. The package is deprecated, with zimmerframe recommended as the alternative.

Project status

  • Maintenance status: The repo shows an upstream push on 2025-09-07, but the latest published updates listed here were v3.0.3 (2023-01-20), suggesting development may be ongoing while tagged releases are infrequent.
  • Update cadence: After v3.0.3 in Jan 2023, there are no newer version tags shown through 2026-06-09. Historically, versions exist but with multi-year gaps (for example, v3.0.2 and v3.0.3 in Jan 2023, prior major changes in 2021 and 2020).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v3.0.3

    No release notes were provided for v3.0.3. The repository changelog and the code diff indicate this release focused on internal refactoring and dependency/type-setup changes, but the actual walker implementation also changed in ways that can affect behavior and TypeScript expectations.

  • v3.0.2

    Release v3.0.2 appears to be a packaging and TypeScript typing resolution update rather than a runtime code change. The only functional change in the provided diff is updating package.json exports to expose TypeScript declaration files.

  • v3.0.1

    Release v3.0.1 was published on 2021-12-20, but no release notes were provided by the publisher. As a result, there is no documented information about new features, fixes, security updates, breaking changes, or migrations in this release.

  • v3.0.0

    v3.0.0 makes a major packaging shift toward ESM by changing the npm entrypoints and removing CommonJS support. The build pipeline and published files were also simplified, removing rollup/dist artifacts in favor of direct src usage.

  • v2.0.2

    v2.0.2 is a build and packaging focused release, refactoring the implementation from TypeScript entrypoints to JavaScript modules and changing the test/build toolchain. While the external functions walk and asyncWalk still exist, the internal walker class structure and the published entrypoint layout appear to have changed in ways not described in the (missing) release notes.

    Breaking
  • v2.0.1

    Version 2.0.1 makes the walker behavior more robust when `this.remove()` is called during traversal, primarily affecting how array children are iterated. The change also alters the `index` argument passed to walker callbacks for array element visits after removals.

  • v2.0.0

    v2.0.0 performs a major internal rewrite of the AST walker implementation and introduces an async traversal API. The public sync API is still named walk, but the implementation and type declarations have been refactored into new sync and async walker modules.

    BreakingFeatures
  • v1.0.1

    This release makes a TypeScript typing change for the AST node types used by `walk`, relaxing them from `estree.Node` to `estree.BaseNode`. No runtime logic changes are visible in the provided diff, but the public type signatures in `src/index.ts` and `types/index.d.ts` were updated accordingly.

  • v1.0.0

    Version 1.0.0 refactors estree-walker internals by removing the childKeys caching mechanism and simplifying how the walker discovers child nodes. The public API surface also changes by removing the exported childKeys symbol, along with adjustments to the TypeScript declaration build pipeline.

    Breaking
  • v0.9.0

    Release v0.9.0 was published on 2019-10-27, but the publisher did not provide release notes. As a result, this release cannot be analyzed for documented new features, breaking changes, bug fixes, or security/performance updates based on the provided information.