You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							115 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							115 lines
						
					
					
						
							2.5 KiB
						
					
					
				| 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>;
 | |
| }
 |