aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/estree-walker/src/index.js
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/estree-walker/src/index.js
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/estree-walker/src/index.js')
-rw-r--r--vanilla/node_modules/estree-walker/src/index.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/vanilla/node_modules/estree-walker/src/index.js b/vanilla/node_modules/estree-walker/src/index.js
new file mode 100644
index 0000000..933ea4f
--- /dev/null
+++ b/vanilla/node_modules/estree-walker/src/index.js
@@ -0,0 +1,34 @@
+import { SyncWalker } from './sync.js';
+import { AsyncWalker } from './async.js';
+
+/**
+ * @typedef {import('estree').Node} Node
+ * @typedef {import('./sync.js').SyncHandler} SyncHandler
+ * @typedef {import('./async.js').AsyncHandler} AsyncHandler
+ */
+
+/**
+ * @param {Node} ast
+ * @param {{
+ * enter?: SyncHandler
+ * leave?: SyncHandler
+ * }} walker
+ * @returns {Node | null}
+ */
+export function walk(ast, { enter, leave }) {
+ const instance = new SyncWalker(enter, leave);
+ return instance.visit(ast, null);
+}
+
+/**
+ * @param {Node} ast
+ * @param {{
+ * enter?: AsyncHandler
+ * leave?: AsyncHandler
+ * }} walker
+ * @returns {Promise<Node | null>}
+ */
+export async function asyncWalk(ast, { enter, leave }) {
+ const instance = new AsyncWalker(enter, leave);
+ return await instance.visit(ast, null);
+}