| 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; |
| |
| export const base: RecursiveVisitors<any>; |
| } |