mirror of
https://github.com/swc-project/swc.git
synced 2025-01-03 11:01:52 +03:00
fix(node/types): Add types for jsc.minify.format
(#4492)
This commit is contained in:
parent
9fc3d2ce58
commit
3ed1538bfe
@ -17,6 +17,8 @@ export type TerserEcmaVersion = 5 | 2015 | 2016 | string | number;
|
|||||||
export interface JsMinifyOptions {
|
export interface JsMinifyOptions {
|
||||||
compress?: TerserCompressOptions | boolean,
|
compress?: TerserCompressOptions | boolean,
|
||||||
|
|
||||||
|
format?: JsFormatOptions & ToSnakeCaseProperties<JsFormatOptions>,
|
||||||
|
|
||||||
mangle?: TerserMangleOptions | boolean,
|
mangle?: TerserMangleOptions | boolean,
|
||||||
|
|
||||||
ecma?: TerserEcmaVersion,
|
ecma?: TerserEcmaVersion,
|
||||||
@ -38,6 +40,151 @@ export interface JsMinifyOptions {
|
|||||||
inlineSourcesContent?: boolean
|
inlineSourcesContent?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @example ToSnakeCase<'indentLevel'> == 'indent_level'
|
||||||
|
*/
|
||||||
|
type ToSnakeCase<T extends string> = T extends `${infer A}${infer B}`
|
||||||
|
? `${A extends Lowercase<A> ? A : `_${Lowercase<A>}`}${ToSnakeCase<B>}`
|
||||||
|
: T
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @example ToSnakeCaseProperties<{indentLevel: 3}> == {indent_level: 3}
|
||||||
|
*/
|
||||||
|
type ToSnakeCaseProperties<T> = {
|
||||||
|
[K in keyof T as (K extends string ? ToSnakeCase<K> : K)]: T[K]
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* These properties are mostly not implemented yet,
|
||||||
|
* but it exists to support passing terser config to swc minify
|
||||||
|
* without modification.
|
||||||
|
*/
|
||||||
|
export interface JsFormatOptions {
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @default false
|
||||||
|
* @alias ascii_only
|
||||||
|
*/
|
||||||
|
asciiOnly?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
beautify?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
braces?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* - `false`: removes all comments
|
||||||
|
* - `'some'`: preserves some comments
|
||||||
|
* - `'all'`: preserves all comments
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
comments?: false | 'some' | 'all'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @default 5
|
||||||
|
*/
|
||||||
|
ecma?: TerserEcmaVersion
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias indent_level
|
||||||
|
*/
|
||||||
|
indentLevel?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias indent_start
|
||||||
|
*/
|
||||||
|
indentStart?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias inline_script
|
||||||
|
*/
|
||||||
|
inlineScript?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias keep_numbers
|
||||||
|
*/
|
||||||
|
keepNumbers?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias keep_quoted_props
|
||||||
|
*/
|
||||||
|
keepQuotedProps?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias max_line_len
|
||||||
|
*/
|
||||||
|
maxLineLen?: number | false
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
*/
|
||||||
|
preamble?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias quote_keys
|
||||||
|
*/
|
||||||
|
quoteKeys?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias quote_style
|
||||||
|
*/
|
||||||
|
quoteStyle?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias preserve_annotations
|
||||||
|
*/
|
||||||
|
preserveAnnotations?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
*/
|
||||||
|
safari10?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
*/
|
||||||
|
semicolons?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
*/
|
||||||
|
shebang?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
*/
|
||||||
|
webkit?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias wrap_iife
|
||||||
|
*/
|
||||||
|
wrapIife?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently noop.
|
||||||
|
* @alias wrap_func_args
|
||||||
|
*/
|
||||||
|
wrapFuncArgs?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
export interface TerserCompressOptions {
|
export interface TerserCompressOptions {
|
||||||
arguments?: boolean,
|
arguments?: boolean,
|
||||||
arrows?: boolean,
|
arrows?: boolean,
|
||||||
|
Loading…
Reference in New Issue
Block a user