source: node_modules/estree-walker/src/index.js@ 57e58a3

Last change on this file since 57e58a3 was 57e58a3, checked in by ste08 <sjovanoska@…>, 4 months ago

Initial commit

  • Property mode set to 100644
File size: 842 bytes
Line 
1// @ts-check
2import { SyncWalker } from './sync.js';
3import { AsyncWalker } from './async.js';
4
5/** @typedef { import('estree').BaseNode} BaseNode */
6/** @typedef { import('./sync.js').SyncHandler} SyncHandler */
7/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */
8
9/**
10 *
11 * @param {BaseNode} ast
12 * @param {{
13 * enter?: SyncHandler
14 * leave?: SyncHandler
15 * }} walker
16 * @returns {BaseNode}
17 */
18export function walk(ast, { enter, leave }) {
19 const instance = new SyncWalker(enter, leave);
20 return instance.visit(ast, null);
21}
22
23/**
24 *
25 * @param {BaseNode} ast
26 * @param {{
27 * enter?: AsyncHandler
28 * leave?: AsyncHandler
29 * }} walker
30 * @returns {Promise<BaseNode>}
31 */
32export async function asyncWalk(ast, { enter, leave }) {
33 const instance = new AsyncWalker(enter, leave);
34 return await instance.visit(ast, null);
35}
Note: See TracBrowser for help on using the repository browser.