deepl-mark/dist/ast/eswalk.d.ts

19 lines
750 B
TypeScript

import { EsNode, EsNodeMap, EsProgram } from './estree.js';
export declare const DEFAULT_ESWALKERS: EsWalkers;
export declare function eswalk(ast: EsProgram, visitors: EsVisitors, walkers?: EsWalkers): void;
export interface EsProcessor {
(node: EsNode | null, parents: EsNode[]): void;
}
export interface EsVisitor<NodeType extends keyof EsNodeMap> {
(node: EsNodeMap[NodeType], parents: EsNode[]): boolean | void;
}
export type EsVisitors = {
[NodeType in keyof EsNodeMap]?: EsVisitor<NodeType>;
};
export interface EsWalker<NodeType extends keyof EsNodeMap> {
(node: EsNodeMap[NodeType], parents: EsNode[], process: EsProcessor): void;
}
export type EsWalkers = {
[NodeType in keyof Partial<EsNodeMap>]: EsWalker<NodeType>;
};