diff options
Diffstat (limited to 'vanilla/node_modules/estree-walker/src/index.js')
| -rw-r--r-- | vanilla/node_modules/estree-walker/src/index.js | 34 |
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); +} |
