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
|
Rev | Line | |
---|
[57e58a3] | 1 | // @ts-check
|
---|
| 2 | import { SyncWalker } from './sync.js';
|
---|
| 3 | import { 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 | */
|
---|
| 18 | export 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 | */
|
---|
| 32 | export 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.