Spaces:
Sleeping
Sleeping
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; | |
} | |