/
main.d.ts
116 lines (100 loc) · 3.32 KB
/
main.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
export declare type Target = 'esnext' | 'es6' | 'es2015' | 'es2016' | 'es2017' | 'es2018' | 'es2019' | 'es2020';
export declare type Platform = 'browser' | 'node';
export declare type Format = 'iife' | 'cjs';
export declare type Loader = 'js' | 'jsx' | 'ts' | 'tsx' | 'json' | 'text' | 'base64';
interface CommonOptions {
sourcemap?: boolean;
errorLimit?: number;
target?: Target;
minify?: boolean;
minifyWhitespace?: boolean;
minifyIdentifiers?: boolean;
minifySyntax?: boolean;
jsxFactory?: string;
jsxFragment?: string;
define?: { [key: string]: string };
}
export interface BuildOptions extends CommonOptions {
name?: string;
bundle?: boolean;
outfile?: string;
outdir?: string;
platform?: Platform;
format?: Format;
color?: boolean;
external?: string[];
loader?: { [ext: string]: Loader };
entryPoints: string[];
// This defaults to "pipe" which exposes a property called "stderr" on the
// result. This can be set to "inherit" instead to forward the stderr of the
// esbuild process to the current process's stderr.
stdio?: 'pipe' | 'ignore' | 'inherit' | ('pipe' | 'ignore' | 'inherit' | number | null | undefined)[];
}
export interface Message {
text: string;
location: null | {
file: string;
line: string;
column: string;
};
}
export interface BuildResult {
stderr: string;
warnings: Message[];
}
export interface BuildFailure extends Error {
stderr: string;
errors: Message[];
warnings: Message[];
}
// This function invokes the "esbuild" command-line tool for you. It returns
// a promise that is either resolved with a "BuildResult" object or rejected
// with a "BuildFailure" object.
//
// Example usage:
//
// const esbuild = require('esbuild')
// const fs = require('fs')
//
// esbuild.build({
// entryPoints: ['./example.ts'],
// minify: true,
// bundle: true,
// outfile: './example.min.js',
// }).then(
// ({ stderr, warnings }) => {
// const output = fs.readFileSync('./example.min.js', 'utf8')
// console.log('success', { output, stderr, warnings })
// },
// ({ stderr, errors, warnings }) => {
// console.error('failure', { stderr, errors, warnings })
// }
// )
//
export declare function build(options: BuildOptions): Promise<BuildResult>;
// This starts "esbuild" as a long-lived child process that is then reused, so
// you can call methods on the service many times without the overhead of
// starting up a new child process each time.
export declare function startService(): Promise<Service>;
interface Service {
// This function transforms a single JavaScript file. It can be used to minify
// JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
// to older JavaScript. It returns a promise that is either resolved with a
// "TransformResult" object or rejected with a "TransformFailure" object.
transform(file: string, options: TransformOptions): Promise<TransformResult>;
// This stops the service, which kills the long-lived child process. Any
// pending requests will be aborted.
stop(): void;
}
export interface TransformOptions extends CommonOptions {
loader?: Loader;
}
export interface TransformResult {
js?: string;
jsSourceMap?: string;
warnings: Message[];
}
export interface TransformFailure extends Error {
errors: Message[];
warnings: Message[];
}