You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// @ts-check
import { SyncWalker } from './sync.js';import { AsyncWalker } from './async.js';
/** @typedef { import('estree').BaseNode} BaseNode *//** @typedef { import('./sync.js').SyncHandler} SyncHandler *//** @typedef { import('./async.js').AsyncHandler} AsyncHandler */
/** * * @param {BaseNode} ast * @param {{ * enter?: SyncHandler * leave?: SyncHandler * }} walker * @returns {BaseNode} */export function walk(ast, { enter, leave }) { const instance = new SyncWalker(enter, leave); return instance.visit(ast, null);}
/** * * @param {BaseNode} ast * @param {{ * enter?: AsyncHandler * leave?: AsyncHandler * }} walker * @returns {Promise<BaseNode>} */export async function asyncWalk(ast, { enter, leave }) { const instance = new AsyncWalker(enter, leave); return await instance.visit(ast, null);}
|