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.
		
		
		
		
		
			
		
			
				
					211 lines
				
				6.0 KiB
			
		
		
			
		
	
	
					211 lines
				
				6.0 KiB
			| 
											3 years ago
										 | /// <reference lib="es2015" />
 | ||
|  | 
 | ||
|  | import { SectionedSourceMapInput, EncodedSourceMap, DecodedSourceMap } from '@jridgewell/source-map'; | ||
|  | 
 | ||
|  | export type ECMA = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020; | ||
|  | 
 | ||
|  | export interface ParseOptions { | ||
|  |     bare_returns?: boolean; | ||
|  |     /** @deprecated legacy option. Currently, all supported EcmaScript is valid to parse. */ | ||
|  |     ecma?: ECMA; | ||
|  |     html5_comments?: boolean; | ||
|  |     shebang?: boolean; | ||
|  | } | ||
|  | 
 | ||
|  | export interface CompressOptions { | ||
|  |     arguments?: boolean; | ||
|  |     arrows?: boolean; | ||
|  |     booleans_as_integers?: boolean; | ||
|  |     booleans?: boolean; | ||
|  |     collapse_vars?: boolean; | ||
|  |     comparisons?: boolean; | ||
|  |     computed_props?: boolean; | ||
|  |     conditionals?: boolean; | ||
|  |     dead_code?: boolean; | ||
|  |     defaults?: boolean; | ||
|  |     directives?: boolean; | ||
|  |     drop_console?: boolean; | ||
|  |     drop_debugger?: boolean; | ||
|  |     ecma?: ECMA; | ||
|  |     evaluate?: boolean; | ||
|  |     expression?: boolean; | ||
|  |     global_defs?: object; | ||
|  |     hoist_funs?: boolean; | ||
|  |     hoist_props?: boolean; | ||
|  |     hoist_vars?: boolean; | ||
|  |     ie8?: boolean; | ||
|  |     if_return?: boolean; | ||
|  |     inline?: boolean | InlineFunctions; | ||
|  |     join_vars?: boolean; | ||
|  |     keep_classnames?: boolean | RegExp; | ||
|  |     keep_fargs?: boolean; | ||
|  |     keep_fnames?: boolean | RegExp; | ||
|  |     keep_infinity?: boolean; | ||
|  |     loops?: boolean; | ||
|  |     module?: boolean; | ||
|  |     negate_iife?: boolean; | ||
|  |     passes?: number; | ||
|  |     properties?: boolean; | ||
|  |     pure_funcs?: string[]; | ||
|  |     pure_getters?: boolean | 'strict'; | ||
|  |     reduce_funcs?: boolean; | ||
|  |     reduce_vars?: boolean; | ||
|  |     sequences?: boolean | number; | ||
|  |     side_effects?: boolean; | ||
|  |     switches?: boolean; | ||
|  |     toplevel?: boolean; | ||
|  |     top_retain?: null | string | string[] | RegExp; | ||
|  |     typeofs?: boolean; | ||
|  |     unsafe_arrows?: boolean; | ||
|  |     unsafe?: boolean; | ||
|  |     unsafe_comps?: boolean; | ||
|  |     unsafe_Function?: boolean; | ||
|  |     unsafe_math?: boolean; | ||
|  |     unsafe_symbols?: boolean; | ||
|  |     unsafe_methods?: boolean; | ||
|  |     unsafe_proto?: boolean; | ||
|  |     unsafe_regexp?: boolean; | ||
|  |     unsafe_undefined?: boolean; | ||
|  |     unused?: boolean; | ||
|  | } | ||
|  | 
 | ||
|  | export enum InlineFunctions { | ||
|  |     Disabled = 0, | ||
|  |     SimpleFunctions = 1, | ||
|  |     WithArguments = 2, | ||
|  |     WithArgumentsAndVariables = 3 | ||
|  | } | ||
|  | 
 | ||
|  | export interface MangleOptions { | ||
|  |     eval?: boolean; | ||
|  |     keep_classnames?: boolean | RegExp; | ||
|  |     keep_fnames?: boolean | RegExp; | ||
|  |     module?: boolean; | ||
|  |     nth_identifier?: SimpleIdentifierMangler | WeightedIdentifierMangler; | ||
|  |     properties?: boolean | ManglePropertiesOptions; | ||
|  |     reserved?: string[]; | ||
|  |     safari10?: boolean; | ||
|  |     toplevel?: boolean; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * An identifier mangler for which the output is invariant with respect to the source code. | ||
|  |  */ | ||
|  | export interface SimpleIdentifierMangler { | ||
|  |     /** | ||
|  |      * Obtains the nth most favored (usually shortest) identifier to rename a variable to. | ||
|  |      * The mangler will increment n and retry until the return value is not in use in scope, and is not a reserved word. | ||
|  |      * This function is expected to be stable; Evaluating get(n) === get(n) should always return true. | ||
|  |      * @param n The ordinal of the identifier. | ||
|  |      */ | ||
|  |     get(n: number): string; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * An identifier mangler that leverages character frequency analysis to determine identifier precedence. | ||
|  |  */ | ||
|  | export interface WeightedIdentifierMangler extends SimpleIdentifierMangler { | ||
|  |     /** | ||
|  |      * Modifies the internal weighting of the input characters by the specified delta. | ||
|  |      * Will be invoked on the entire printed AST, and then deduct mangleable identifiers. | ||
|  |      * @param chars The characters to modify the weighting of. | ||
|  |      * @param delta The numeric weight to add to the characters. | ||
|  |      */ | ||
|  |     consider(chars: string, delta: number): number; | ||
|  |     /** | ||
|  |      * Resets character weights. | ||
|  |      */ | ||
|  |     reset(): void; | ||
|  |     /** | ||
|  |      * Sorts identifiers by character frequency, in preparation for calls to get(n). | ||
|  |      */ | ||
|  |     sort(): void; | ||
|  | } | ||
|  | 
 | ||
|  | export interface ManglePropertiesOptions { | ||
|  |     builtins?: boolean; | ||
|  |     debug?: boolean; | ||
|  |     keep_quoted?: boolean | 'strict'; | ||
|  |     nth_identifier?: SimpleIdentifierMangler | WeightedIdentifierMangler; | ||
|  |     regex?: RegExp | string; | ||
|  |     reserved?: string[]; | ||
|  | } | ||
|  | 
 | ||
|  | export interface FormatOptions { | ||
|  |     ascii_only?: boolean; | ||
|  |     /** @deprecated Not implemented anymore */ | ||
|  |     beautify?: boolean; | ||
|  |     braces?: boolean; | ||
|  |     comments?: boolean | 'all' | 'some' | RegExp | ( (node: any, comment: { | ||
|  |         value: string, | ||
|  |         type: 'comment1' | 'comment2' | 'comment3' | 'comment4', | ||
|  |         pos: number, | ||
|  |         line: number, | ||
|  |         col: number, | ||
|  |     }) => boolean ); | ||
|  |     ecma?: ECMA; | ||
|  |     ie8?: boolean; | ||
|  |     keep_numbers?: boolean; | ||
|  |     indent_level?: number; | ||
|  |     indent_start?: number; | ||
|  |     inline_script?: boolean; | ||
|  |     keep_quoted_props?: boolean; | ||
|  |     max_line_len?: number | false; | ||
|  |     preamble?: string; | ||
|  |     preserve_annotations?: boolean; | ||
|  |     quote_keys?: boolean; | ||
|  |     quote_style?: OutputQuoteStyle; | ||
|  |     safari10?: boolean; | ||
|  |     semicolons?: boolean; | ||
|  |     shebang?: boolean; | ||
|  |     shorthand?: boolean; | ||
|  |     source_map?: SourceMapOptions; | ||
|  |     webkit?: boolean; | ||
|  |     width?: number; | ||
|  |     wrap_iife?: boolean; | ||
|  |     wrap_func_args?: boolean; | ||
|  | } | ||
|  | 
 | ||
|  | export enum OutputQuoteStyle { | ||
|  |     PreferDouble = 0, | ||
|  |     AlwaysSingle = 1, | ||
|  |     AlwaysDouble = 2, | ||
|  |     AlwaysOriginal = 3 | ||
|  | } | ||
|  | 
 | ||
|  | export interface MinifyOptions { | ||
|  |     compress?: boolean | CompressOptions; | ||
|  |     ecma?: ECMA; | ||
|  |     enclose?: boolean | string; | ||
|  |     ie8?: boolean; | ||
|  |     keep_classnames?: boolean | RegExp; | ||
|  |     keep_fnames?: boolean | RegExp; | ||
|  |     mangle?: boolean | MangleOptions; | ||
|  |     module?: boolean; | ||
|  |     nameCache?: object; | ||
|  |     format?: FormatOptions; | ||
|  |     /** @deprecated */ | ||
|  |     output?: FormatOptions; | ||
|  |     parse?: ParseOptions; | ||
|  |     safari10?: boolean; | ||
|  |     sourceMap?: boolean | SourceMapOptions; | ||
|  |     toplevel?: boolean; | ||
|  | } | ||
|  | 
 | ||
|  | export interface MinifyOutput { | ||
|  |     code?: string; | ||
|  |     map?: EncodedSourceMap | string; | ||
|  |     decoded_map?: DecodedSourceMap | null; | ||
|  | } | ||
|  | 
 | ||
|  | export interface SourceMapOptions { | ||
|  |     /** Source map object, 'inline' or source map file content */ | ||
|  |     content?: SectionedSourceMapInput | string; | ||
|  |     includeSources?: boolean; | ||
|  |     filename?: string; | ||
|  |     root?: string; | ||
|  |     url?: string | 'inline'; | ||
|  | } | ||
|  | 
 | ||
|  | export function minify(files: string | string[] | { [file: string]: string }, options?: MinifyOptions): Promise<MinifyOutput>; |