136 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // Type definitions for @babel/parser
 | |
| // Project: https://github.com/babel/babel/tree/master/packages/babel-parser
 | |
| // Definitions by: Troy Gerwien <https://github.com/yortus>
 | |
| //                 Marvin Hagemeister <https://github.com/marvinhagemeister>
 | |
| //                 Avi Vahl <https://github.com/AviVahl>
 | |
| // TypeScript Version: 2.9
 | |
| 
 | |
| /**
 | |
|  * Parse the provided code as an entire ECMAScript program.
 | |
|  */
 | |
| export function parse(input: string, options?: ParserOptions): import('@babel/types').File;
 | |
| 
 | |
| /**
 | |
|  * Parse the provided code as a single expression.
 | |
|  */
 | |
| export function parseExpression(input: string, options?: ParserOptions): import('@babel/types').Expression;
 | |
| 
 | |
| export interface ParserOptions {
 | |
|     /**
 | |
|      * By default, import and export declarations can only appear at a program's top level.
 | |
|      * Setting this option to true allows them anywhere where a statement is allowed.
 | |
|      */
 | |
|     allowImportExportEverywhere?: boolean;
 | |
| 
 | |
|     /**
 | |
|      * By default, await use is not allowed outside of an async function.
 | |
|      * Set this to true to accept such code.
 | |
|      */
 | |
|     allowAwaitOutsideFunction?: boolean;
 | |
| 
 | |
|     /**
 | |
|      * By default, a return statement at the top level raises an error.
 | |
|      * Set this to true to accept such code.
 | |
|      */
 | |
|     allowReturnOutsideFunction?: boolean;
 | |
| 
 | |
|     allowSuperOutsideMethod?: boolean;
 | |
| 
 | |
|     /**
 | |
|      * Indicate the mode the code should be parsed in.
 | |
|      * Can be one of "script", "module", or "unambiguous". Defaults to "script".
 | |
|      * "unambiguous" will make @babel/parser attempt to guess, based on the presence
 | |
|      * of ES6 import or export statements.
 | |
|      * Files with ES6 imports and exports are considered "module" and are otherwise "script".
 | |
|      */
 | |
|     sourceType?: 'script' | 'module' | 'unambiguous';
 | |
| 
 | |
|     /**
 | |
|      * Correlate output AST nodes with their source filename.
 | |
|      * Useful when generating code and source maps from the ASTs of multiple input files.
 | |
|      */
 | |
|     sourceFilename?: string;
 | |
| 
 | |
|     /**
 | |
|      * By default, the first line of code parsed is treated as line 1.
 | |
|      * You can provide a line number to alternatively start with.
 | |
|      * Useful for integration with other source tools.
 | |
|      */
 | |
|     startLine?: number;
 | |
| 
 | |
|     /**
 | |
|      * Array containing the plugins that you want to enable.
 | |
|      */
 | |
|     plugins?: ParserPlugin[];
 | |
| 
 | |
|     /**
 | |
|      * Should the parser work in strict mode.
 | |
|      * Defaults to true if sourceType === 'module'. Otherwise, false.
 | |
|      */
 | |
|     strictMode?: boolean;
 | |
| 
 | |
|     /**
 | |
|      * Adds a ranges property to each node: [node.start, node.end]
 | |
|      */
 | |
|     ranges?: boolean;
 | |
| 
 | |
|     /**
 | |
|      * Adds all parsed tokens to a tokens property on the File node.
 | |
|      */
 | |
|     tokens?: boolean;
 | |
| 
 | |
|     /**
 | |
|      * By default, the parser adds information about parentheses by setting
 | |
|      * `extra.parenthesized` to `true` as needed.
 | |
|      * When this option is `true` the parser creates `ParenthesizedExpression`
 | |
|      * AST nodes instead of using the `extra` property.
 | |
|      */
 | |
|     createParenthesizedExpressions?: boolean;
 | |
| }
 | |
| 
 | |
| export type ParserPlugin =
 | |
|     'estree' |
 | |
|     'jsx' |
 | |
|     'flow' |
 | |
|     'flowComments' |
 | |
|     'typescript' |
 | |
|     'doExpressions' |
 | |
|     'objectRestSpread' |
 | |
|     'decorators' |
 | |
|     'decorators-legacy' |
 | |
|     'classProperties' |
 | |
|     'classPrivateProperties' |
 | |
|     'classPrivateMethods' |
 | |
|     'exportDefaultFrom' |
 | |
|     'exportNamespaceFrom' |
 | |
|     'asyncGenerators' |
 | |
|     'functionBind' |
 | |
|     'functionSent' |
 | |
|     'dynamicImport' |
 | |
|     'numericSeparator' |
 | |
|     'optionalChaining' |
 | |
|     'importMeta' |
 | |
|     'bigInt' |
 | |
|     'optionalCatchBinding' |
 | |
|     'throwExpressions' |
 | |
|     'pipelineOperator' |
 | |
|     'nullishCoalescingOperator' |
 | |
|     ParserPluginWithOptions;
 | |
| 
 | |
| export type ParserPluginWithOptions =
 | |
|     ['decorators', DecoratorsPluginOptions] |
 | |
|     ['pipelineOperator', PipelineOperatorPluginOptions] |
 | |
|     ['flow', FlowPluginOptions];
 | |
| 
 | |
| export interface DecoratorsPluginOptions {
 | |
|     decoratorsBeforeExport?: boolean;
 | |
| }
 | |
| 
 | |
| export interface PipelineOperatorPluginOptions {
 | |
|     proposal: 'minimal' | 'smart';
 | |
| }
 | |
| 
 | |
| export interface FlowPluginOptions {
 | |
|     all?: boolean;
 | |
| }
 |