2019-09-11 01:08:57 +00:00
|
|
|
import { VisitorContext } from './VisitorContext';
|
|
|
|
import { VisitorResult } from './VisitorResult';
|
2019-06-16 18:30:04 +00:00
|
|
|
|
2019-06-24 03:48:07 +00:00
|
|
|
export interface Visitor<TResult extends VisitorResult> {
|
|
|
|
/**
|
|
|
|
* Select nodes eligible to be visited.
|
|
|
|
**/
|
|
|
|
pick(ctx: VisitorContext, root: any): Promise<Array<any>>;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Visit a node.
|
|
|
|
*/
|
|
|
|
visit(ctx: VisitorContext, node: any): Promise<TResult>;
|
|
|
|
}
|