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.
		
		
		
		
		
			
		
			
				
					
					
						
							83 lines
						
					
					
						
							3.1 KiB
						
					
					
				
			
		
		
	
	
							83 lines
						
					
					
						
							3.1 KiB
						
					
					
				import { Next, ToString } from "./types"; | 
						|
declare const FUNCTION_PREFIXES: { | 
						|
    Function: string; | 
						|
    GeneratorFunction: string; | 
						|
    AsyncFunction: string; | 
						|
    AsyncGeneratorFunction: string; | 
						|
}; | 
						|
/** | 
						|
 * Track function parser usage. | 
						|
 */ | 
						|
export declare const USED_METHOD_KEY: WeakSet<(...args: unknown[]) => unknown>; | 
						|
/** | 
						|
 * Stringify a function. | 
						|
 */ | 
						|
export declare const functionToString: ToString; | 
						|
/** | 
						|
 * Rewrite a stringified function to remove initial indentation. | 
						|
 */ | 
						|
export declare function dedentFunction(fnString: string): string; | 
						|
/** | 
						|
 * Function parser and stringify. | 
						|
 */ | 
						|
export declare class FunctionParser { | 
						|
    fn: (...args: unknown[]) => unknown; | 
						|
    indent: string; | 
						|
    next: Next; | 
						|
    key?: string | undefined; | 
						|
    fnString: string; | 
						|
    fnType: keyof typeof FUNCTION_PREFIXES; | 
						|
    keyQuote: string | undefined; | 
						|
    keyPrefix: string; | 
						|
    isMethodCandidate: boolean; | 
						|
    pos: number; | 
						|
    hadKeyword: boolean; | 
						|
    constructor(fn: (...args: unknown[]) => unknown, indent: string, next: Next, key?: string | undefined); | 
						|
    stringify(): string; | 
						|
    getPrefix(): string; | 
						|
    tryParse(): string | undefined; | 
						|
    /** | 
						|
     * Attempt to parse the function from the current position by first stripping | 
						|
     * the function's name from the front. This is not a fool-proof method on all | 
						|
     * JavaScript engines, but yields good results on Node.js 4 (and slightly | 
						|
     * less good results on Node.js 6 and 8). | 
						|
     */ | 
						|
    tryStrippingName(): string | undefined; | 
						|
    /** | 
						|
     * Attempt to advance the parser past the keywords expected to be at the | 
						|
     * start of this function's definition. This method sets `this.hadKeyword` | 
						|
     * based on whether or not a `function` keyword is consumed. | 
						|
     */ | 
						|
    tryParsePrefixTokens(): boolean; | 
						|
    /** | 
						|
     * Advance the parser past one element of JavaScript syntax. This could be a | 
						|
     * matched pair of delimiters, like braces or parentheses, or an atomic unit | 
						|
     * like a keyword, variable, or operator. Return a normalized string | 
						|
     * representation of the element parsed--for example, returns '{}' for a | 
						|
     * matched pair of braces. Comments and whitespace are skipped. | 
						|
     * | 
						|
     * (This isn't a full parser, so the token scanning logic used here is as | 
						|
     * simple as it can be. As a consequence, some things that are one token in | 
						|
     * JavaScript, like decimal number literals or most multi-character operators | 
						|
     * like '&&', are split into more than one token here. However, awareness of | 
						|
     * some multi-character sequences like '=>' is necessary, so we match the few | 
						|
     * of them that we care about.) | 
						|
     */ | 
						|
    consumeSyntax(wordLikeToken?: string): string | undefined; | 
						|
    consumeSyntaxUntil(startToken: string, endToken: string): string | undefined; | 
						|
    consumeMatch(re: RegExp): RegExpExecArray | null; | 
						|
    /** | 
						|
     * Advance the parser past an arbitrary regular expression. Return `token`, | 
						|
     * or the match object of the regexp. | 
						|
     */ | 
						|
    consumeRegExp(re: RegExp, token: string): string | undefined; | 
						|
    /** | 
						|
     * Advance the parser past a template string. | 
						|
     */ | 
						|
    consumeTemplate(): "`" | undefined; | 
						|
    /** | 
						|
     * Advance the parser past any whitespace or comments. | 
						|
     */ | 
						|
    consumeWhitespace(): void; | 
						|
} | 
						|
export {};
 | 
						|
 |