Last change
on this file 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
|
---|
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.