/* auto-generated by NAPI-RS */ /* eslint-disable */ export interface CodegenOptions { /** * Remove whitespace. * * @default true */ removeWhitespace?: boolean /** * How to handle legal comments (comments containing `@license`, `@preserve`, or starting with `//!`/`/*!`). * * * `"none"` - Do not preserve any legal comments. * * `"inline"` - Preserve all legal comments inline. * * `"eof"` - Move all legal comments to the end of the file. * * `"external"` - Extract legal comments without linking. * * `{ linked: "path/to/legal.txt" }` - Extract legal comments and add a link comment to the given path. * * @default "none" (when minifying) */ legalComments?: 'none' | 'inline' | 'eof' | 'external' | { linked: string } } export interface CompressOptions { /** * Set desired EcmaScript standard version for output. * * Set `esnext` to enable all target highering. * * Example: * * * `'es2015'` * * `['es2020', 'chrome58', 'edge16', 'firefox57', 'node12', 'safari11']` * * @default 'esnext' * * @see [esbuild#target](https://esbuild.github.io/api/#target) */ target?: string | Array /** * Pass true to discard calls to `console.*`. * * @default false */ dropConsole?: boolean /** * Remove `debugger;` statements. * * @default true */ dropDebugger?: boolean /** * Pass `true` to drop unreferenced functions and variables. * * Simple direct variable assignments do not count as references unless set to `keep_assign`. * @default true */ unused?: boolean | 'keep_assign' /** Keep function / class names. */ keepNames?: CompressOptionsKeepNames /** * Join consecutive var, let and const statements. * * @default true */ joinVars?: boolean /** * Join consecutive simple statements using the comma operator. * * `a; b` -> `a, b` * * @default true */ sequences?: boolean /** * Set of label names to drop from the code. * * Labeled statements matching these names will be removed during minification. * * @default [] */ dropLabels?: Array /** Limit the maximum number of iterations for debugging purpose. */ maxIterations?: number /** Treeshake options. */ treeshake?: TreeShakeOptions } export interface CompressOptionsKeepNames { /** * Keep function names so that `Function.prototype.name` is preserved. * * This does not guarantee that the `undefined` name is preserved. * * @default false */ function: boolean /** * Keep class names so that `Class.prototype.name` is preserved. * * This does not guarantee that the `undefined` name is preserved. * * @default false */ class: boolean } export interface LegalCommentsLinked { /** * Extract legal comments and write them to the given path, with a link * comment appended to the generated code. */ linked: string } export declare const enum LegalCommentsMode { /** Do not preserve any legal comments. */ None = 'none', /** Preserve all legal comments inline. */ Inline = 'inline', /** Move all legal comments to the end of the file. */ Eof = 'eof', /** Extract legal comments without linking. */ External = 'external' } export interface MangleOptions { /** * Pass `true` to mangle names declared in the top level scope. * * @default true for modules and commonjs, otherwise false */ toplevel?: boolean /** * Preserve `name` property for functions and classes. * * @default false */ keepNames?: boolean | MangleOptionsKeepNames /** Debug mangled names. */ debug?: boolean } export interface MangleOptionsKeepNames { /** * Preserve `name` property for functions. * * @default false */ function: boolean /** * Preserve `name` property for classes. * * @default false */ class: boolean } /** * Minify asynchronously. * * Note: This function can be slower than `minifySync` due to the overhead of spawning a thread. */ export declare function minify(filename: string, sourceText: string, options?: MinifyOptions | undefined | null): Promise export interface MinifyOptions { /** Use when minifying an ES module. */ module?: boolean compress?: boolean | CompressOptions mangle?: boolean | MangleOptions codegen?: boolean | CodegenOptions sourcemap?: boolean } export interface MinifyResult { code: string map?: SourceMap errors: Array /** * Legal comments extracted from the source code. * Only populated when `codegen.legalComments` is `"linked"` or `"external"`. */ legalComments: Array } /** Minify synchronously. */ export declare function minifySync(filename: string, sourceText: string, options?: MinifyOptions | undefined | null): MinifyResult export interface TreeShakeOptions { /** * Whether to respect the pure annotations. * * Pure annotations are comments that mark an expression as pure. * For example: @__PURE__ or #__NO_SIDE_EFFECTS__. * * @default true */ annotations?: boolean /** * Whether to treat this function call as pure. * * This function is called for normal function calls, new calls, and * tagged template calls. */ manualPureFunctions?: Array /** * Whether property read accesses have side effects. * * @default 'always' */ propertyReadSideEffects?: boolean | 'always' /** * Whether property write accesses (assignments to member expressions) have side effects. * * When false, assignments like `obj.prop = value` are considered side-effect-free * (assuming the object and value expressions themselves are side-effect-free). * * @default true */ propertyWriteSideEffects?: boolean /** * Whether accessing a global variable has side effects. * * Accessing a non-existing global variable will throw an error. * Global variable may be a getter that has side effects. * * @default true */ unknownGlobalSideEffects?: boolean /** * Whether invalid import statements have side effects. * * Accessing a non-existing import name will throw an error. * Also import statements that cannot be resolved will throw an error. * * @default true */ invalidImportSideEffects?: boolean } export interface Comment { type: 'Line' | 'Block' value: string start: number end: number } export interface ErrorLabel { message: string | null start: number end: number } export interface OxcError { severity: Severity message: string labels: Array helpMessage: string | null codeframe: string | null } export declare const enum Severity { Error = 'Error', Warning = 'Warning', Advice = 'Advice' } export interface SourceMap { file?: string mappings: string names: Array sourceRoot?: string sources: Array sourcesContent?: Array version: number x_google_ignoreList?: Array }