123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import {Node} from 'acorn';
- declare module "acorn-walk" {
- type FullWalkerCallback<TState> = (
- node: Node,
- state: TState,
- type: string
- ) => void;
- type FullAncestorWalkerCallback<TState> = (
- node: Node,
- state: TState | Node[],
- ancestors: Node[],
- type: string
- ) => void;
- type WalkerCallback<TState> = (node: Node, state: TState) => void;
- type SimpleWalkerFn<TState> = (
- node: Node,
- state: TState
- ) => void;
-
- type AncestorWalkerFn<TState> = (
- node: Node,
- state: TState| Node[],
- ancestors: Node[]
- ) => void;
- type RecursiveWalkerFn<TState> = (
- node: Node,
- state: TState,
- callback: WalkerCallback<TState>
- ) => void;
-
- type SimpleVisitors<TState> = {
- [type: string]: SimpleWalkerFn<TState>
- };
- type AncestorVisitors<TState> = {
- [type: string]: AncestorWalkerFn<TState>
- };
-
- type RecursiveVisitors<TState> = {
- [type: string]: RecursiveWalkerFn<TState>
- };
- type FindPredicate = (type: string, node: Node) => boolean;
- interface Found<TState> {
- node: Node,
- state: TState
- }
- export function simple<TState>(
- node: Node,
- visitors: SimpleVisitors<TState>,
- base?: RecursiveVisitors<TState>,
- state?: TState
- ): void;
- export function ancestor<TState>(
- node: Node,
- visitors: AncestorVisitors<TState>,
- base?: RecursiveVisitors<TState>,
- state?: TState
- ): void;
- export function recursive<TState>(
- node: Node,
- state: TState,
- functions: RecursiveVisitors<TState>,
- base?: RecursiveVisitors<TState>
- ): void;
- export function full<TState>(
- node: Node,
- callback: FullWalkerCallback<TState>,
- base?: RecursiveVisitors<TState>,
- state?: TState
- ): void;
- export function fullAncestor<TState>(
- node: Node,
- callback: FullAncestorWalkerCallback<TState>,
- base?: RecursiveVisitors<TState>,
- state?: TState
- ): void;
- export function make<TState>(
- functions: RecursiveVisitors<TState>,
- base?: RecursiveVisitors<TState>
- ): RecursiveVisitors<TState>;
- export function findNodeAt<TState>(
- node: Node,
- start: number | undefined,
- end?: number | undefined,
- type?: FindPredicate | string,
- base?: RecursiveVisitors<TState>,
- state?: TState
- ): Found<TState> | undefined;
- export function findNodeAround<TState>(
- node: Node,
- start: number | undefined,
- type?: FindPredicate | string,
- base?: RecursiveVisitors<TState>,
- state?: TState
- ): Found<TState> | undefined;
- export const findNodeAfter: typeof findNodeAround;
- }
|