jiek 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/jiek-dev.js +4 -0
- package/bin/jiek.js +2 -0
- package/dist/commands/build.esm.js +68 -0
- package/dist/commands/build.esm.js.map +1 -0
- package/dist/commands/build.esm.min.js +2 -0
- package/dist/commands/build.esm.min.js.map +1 -0
- package/dist/commands/publish.esm.js +60 -0
- package/dist/commands/publish.esm.js.map +1 -0
- package/dist/commands/publish.esm.min.js +2 -0
- package/dist/commands/publish.esm.min.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.d.ts +2 -0
- package/dist/index.esm.js +6 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.esm.min.js +2 -0
- package/dist/index.esm.min.js.map +1 -0
- package/dist/index.iife.js +155 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.iife.min.js +2 -0
- package/dist/index.iife.min.js.map +1 -0
- package/dist/index.umd.js +158 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/index.umd.min.js +2 -0
- package/dist/index.umd.min.js.map +1 -0
- package/dist/inner.esm.js +10 -0
- package/dist/inner.esm.js.map +1 -0
- package/dist/inner.esm.min.js +2 -0
- package/dist/inner.esm.min.js.map +1 -0
- package/dist/merge-package-json.esm.js +16 -0
- package/dist/merge-package-json.esm.js.map +1 -0
- package/dist/merge-package-json.esm.min.js +2 -0
- package/dist/merge-package-json.esm.min.js.map +1 -0
- package/package.json +56 -0
- package/src/commands/build.ts +91 -0
- package/src/commands/publish.ts +79 -0
- package/src/index.ts +6 -0
- package/src/inner.ts +11 -0
- package/src/merge-package-json.ts +19 -0
- package/src/rollup/index.ts +162 -0
- package/src/rollup/plugins/globals.ts +34 -0
- package/src/rollup/plugins/skip.ts +23 -0
- package/src/rollup/utils/commonOptions.ts +9 -0
- package/src/rollup/utils/externalResolver.ts +11 -0
- package/src/rollup/utils/globalResolver.ts +24 -0
- package/src/rollup/utils/withMinify.ts +16 -0
- package/tests/build.spec.ts +28 -0
- package/tests/fixtures/node_modules/.bin/jiek +17 -0
- package/tests/fixtures/node_modules/.jiek/jiek+test-foo.rollup.config.js +31 -0
- package/tests/fixtures/node_modules/.modules.yaml +95 -0
- package/tests/fixtures/node_modules/.pnpm/@esbuild+darwin-arm64@0.20.2/node_modules/@esbuild/darwin-arm64/README.md +3 -0
- package/tests/fixtures/node_modules/.pnpm/@esbuild+darwin-arm64@0.20.2/node_modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
- package/tests/fixtures/node_modules/.pnpm/@esbuild+darwin-arm64@0.20.2/node_modules/@esbuild/darwin-arm64/package.json +20 -0
- package/tests/fixtures/node_modules/.pnpm/@jiek+loader-esbuild@1.0.0_esbuild@0.20.2/node_modules/@jiek/loader-esbuild/LICENSE +21 -0
- package/tests/fixtures/node_modules/.pnpm/@jiek+loader-esbuild@1.0.0_esbuild@0.20.2/node_modules/@jiek/loader-esbuild/loader.js +3 -0
- package/tests/fixtures/node_modules/.pnpm/@jiek+loader-esbuild@1.0.0_esbuild@0.20.2/node_modules/@jiek/loader-esbuild/package.json +8 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/LICENSE +20 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/README.md +481 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/package.json +59 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js +269 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/common.js +274 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/index.js +10 -0
- package/tests/fixtures/node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/node.js +263 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/LICENSE +21 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/README.md +50 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/dist/loader.d.ts +3 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/dist/loader.js +15 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/dist/node.d.ts +23 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/dist/node.js +4926 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/loader.js +1 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/node_modules/.bin/esbuild +14 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/package.json +46 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild-register@3.5.0_esbuild@0.20.2/node_modules/esbuild-register/register.js +3 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/LICENSE.md +21 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/README.md +3 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/bin/esbuild +0 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/install.js +288 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/lib/main.d.ts +703 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/lib/main.js +2436 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/node_modules/.bin/esbuild +14 -0
- package/tests/fixtures/node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/package.json +46 -0
- package/tests/fixtures/node_modules/.pnpm/lock.yaml +291 -0
- package/tests/fixtures/node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js +162 -0
- package/tests/fixtures/node_modules/.pnpm/ms@2.1.2/node_modules/ms/license.md +21 -0
- package/tests/fixtures/node_modules/.pnpm/ms@2.1.2/node_modules/ms/package.json +37 -0
- package/tests/fixtures/node_modules/.pnpm/ms@2.1.2/node_modules/ms/readme.md +60 -0
- package/tests/fixtures/node_modules/.pnpm/node_modules/.bin/esbuild +14 -0
- package/tests/fixtures/package.json +8 -0
- package/tests/fixtures/packages/bar/package.json +4 -0
- package/tests/fixtures/packages/foo/dist/index.d.ts +3 -0
- package/tests/fixtures/packages/foo/dist/index.esm.d.ts +3 -0
- package/tests/fixtures/packages/foo/dist/index.esm.js +6 -0
- package/tests/fixtures/packages/foo/dist/index.esm.js.map +1 -0
- package/tests/fixtures/packages/foo/dist/index.esm.min.js +2 -0
- package/tests/fixtures/packages/foo/dist/index.esm.min.js.map +1 -0
- package/tests/fixtures/packages/foo/dist/index.iife.js +15 -0
- package/tests/fixtures/packages/foo/dist/index.iife.js.map +1 -0
- package/tests/fixtures/packages/foo/dist/index.iife.min.js +2 -0
- package/tests/fixtures/packages/foo/dist/index.iife.min.js.map +1 -0
- package/tests/fixtures/packages/foo/dist/index.umd.js +16 -0
- package/tests/fixtures/packages/foo/dist/index.umd.js.map +1 -0
- package/tests/fixtures/packages/foo/dist/index.umd.min.js +2 -0
- package/tests/fixtures/packages/foo/dist/index.umd.min.js.map +1 -0
- package/tests/fixtures/packages/foo/package.json +7 -0
- package/tests/fixtures/packages/foo/src/index.ts +3 -0
- package/tests/fixtures/pnpm-workspace.yaml +2 -0
- package/tests/publish.spec.ts +31 -0
@@ -0,0 +1,703 @@
|
|
1
|
+
export type Platform = 'browser' | 'node' | 'neutral'
|
2
|
+
export type Format = 'iife' | 'cjs' | 'esm'
|
3
|
+
export type Loader = 'base64' | 'binary' | 'copy' | 'css' | 'dataurl' | 'default' | 'empty' | 'file' | 'js' | 'json' | 'jsx' | 'local-css' | 'text' | 'ts' | 'tsx'
|
4
|
+
export type LogLevel = 'verbose' | 'debug' | 'info' | 'warning' | 'error' | 'silent'
|
5
|
+
export type Charset = 'ascii' | 'utf8'
|
6
|
+
export type Drop = 'console' | 'debugger'
|
7
|
+
|
8
|
+
interface CommonOptions {
|
9
|
+
/** Documentation: https://esbuild.github.io/api/#sourcemap */
|
10
|
+
sourcemap?: boolean | 'linked' | 'inline' | 'external' | 'both'
|
11
|
+
/** Documentation: https://esbuild.github.io/api/#legal-comments */
|
12
|
+
legalComments?: 'none' | 'inline' | 'eof' | 'linked' | 'external'
|
13
|
+
/** Documentation: https://esbuild.github.io/api/#source-root */
|
14
|
+
sourceRoot?: string
|
15
|
+
/** Documentation: https://esbuild.github.io/api/#sources-content */
|
16
|
+
sourcesContent?: boolean
|
17
|
+
|
18
|
+
/** Documentation: https://esbuild.github.io/api/#format */
|
19
|
+
format?: Format
|
20
|
+
/** Documentation: https://esbuild.github.io/api/#global-name */
|
21
|
+
globalName?: string
|
22
|
+
/** Documentation: https://esbuild.github.io/api/#target */
|
23
|
+
target?: string | string[]
|
24
|
+
/** Documentation: https://esbuild.github.io/api/#supported */
|
25
|
+
supported?: Record<string, boolean>
|
26
|
+
/** Documentation: https://esbuild.github.io/api/#platform */
|
27
|
+
platform?: Platform
|
28
|
+
|
29
|
+
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
30
|
+
mangleProps?: RegExp
|
31
|
+
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
32
|
+
reserveProps?: RegExp
|
33
|
+
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
34
|
+
mangleQuoted?: boolean
|
35
|
+
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
36
|
+
mangleCache?: Record<string, string | false>
|
37
|
+
/** Documentation: https://esbuild.github.io/api/#drop */
|
38
|
+
drop?: Drop[]
|
39
|
+
/** Documentation: https://esbuild.github.io/api/#drop-labels */
|
40
|
+
dropLabels?: string[]
|
41
|
+
/** Documentation: https://esbuild.github.io/api/#minify */
|
42
|
+
minify?: boolean
|
43
|
+
/** Documentation: https://esbuild.github.io/api/#minify */
|
44
|
+
minifyWhitespace?: boolean
|
45
|
+
/** Documentation: https://esbuild.github.io/api/#minify */
|
46
|
+
minifyIdentifiers?: boolean
|
47
|
+
/** Documentation: https://esbuild.github.io/api/#minify */
|
48
|
+
minifySyntax?: boolean
|
49
|
+
/** Documentation: https://esbuild.github.io/api/#line-limit */
|
50
|
+
lineLimit?: number
|
51
|
+
/** Documentation: https://esbuild.github.io/api/#charset */
|
52
|
+
charset?: Charset
|
53
|
+
/** Documentation: https://esbuild.github.io/api/#tree-shaking */
|
54
|
+
treeShaking?: boolean
|
55
|
+
/** Documentation: https://esbuild.github.io/api/#ignore-annotations */
|
56
|
+
ignoreAnnotations?: boolean
|
57
|
+
|
58
|
+
/** Documentation: https://esbuild.github.io/api/#jsx */
|
59
|
+
jsx?: 'transform' | 'preserve' | 'automatic'
|
60
|
+
/** Documentation: https://esbuild.github.io/api/#jsx-factory */
|
61
|
+
jsxFactory?: string
|
62
|
+
/** Documentation: https://esbuild.github.io/api/#jsx-fragment */
|
63
|
+
jsxFragment?: string
|
64
|
+
/** Documentation: https://esbuild.github.io/api/#jsx-import-source */
|
65
|
+
jsxImportSource?: string
|
66
|
+
/** Documentation: https://esbuild.github.io/api/#jsx-development */
|
67
|
+
jsxDev?: boolean
|
68
|
+
/** Documentation: https://esbuild.github.io/api/#jsx-side-effects */
|
69
|
+
jsxSideEffects?: boolean
|
70
|
+
|
71
|
+
/** Documentation: https://esbuild.github.io/api/#define */
|
72
|
+
define?: { [key: string]: string }
|
73
|
+
/** Documentation: https://esbuild.github.io/api/#pure */
|
74
|
+
pure?: string[]
|
75
|
+
/** Documentation: https://esbuild.github.io/api/#keep-names */
|
76
|
+
keepNames?: boolean
|
77
|
+
|
78
|
+
/** Documentation: https://esbuild.github.io/api/#color */
|
79
|
+
color?: boolean
|
80
|
+
/** Documentation: https://esbuild.github.io/api/#log-level */
|
81
|
+
logLevel?: LogLevel
|
82
|
+
/** Documentation: https://esbuild.github.io/api/#log-limit */
|
83
|
+
logLimit?: number
|
84
|
+
/** Documentation: https://esbuild.github.io/api/#log-override */
|
85
|
+
logOverride?: Record<string, LogLevel>
|
86
|
+
|
87
|
+
/** Documentation: https://esbuild.github.io/api/#tsconfig-raw */
|
88
|
+
tsconfigRaw?: string | TsconfigRaw
|
89
|
+
}
|
90
|
+
|
91
|
+
export interface TsconfigRaw {
|
92
|
+
compilerOptions?: {
|
93
|
+
alwaysStrict?: boolean
|
94
|
+
baseUrl?: string
|
95
|
+
experimentalDecorators?: boolean
|
96
|
+
importsNotUsedAsValues?: 'remove' | 'preserve' | 'error'
|
97
|
+
jsx?: 'preserve' | 'react-native' | 'react' | 'react-jsx' | 'react-jsxdev'
|
98
|
+
jsxFactory?: string
|
99
|
+
jsxFragmentFactory?: string
|
100
|
+
jsxImportSource?: string
|
101
|
+
paths?: Record<string, string[]>
|
102
|
+
preserveValueImports?: boolean
|
103
|
+
strict?: boolean
|
104
|
+
target?: string
|
105
|
+
useDefineForClassFields?: boolean
|
106
|
+
verbatimModuleSyntax?: boolean
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
export interface BuildOptions extends CommonOptions {
|
111
|
+
/** Documentation: https://esbuild.github.io/api/#bundle */
|
112
|
+
bundle?: boolean
|
113
|
+
/** Documentation: https://esbuild.github.io/api/#splitting */
|
114
|
+
splitting?: boolean
|
115
|
+
/** Documentation: https://esbuild.github.io/api/#preserve-symlinks */
|
116
|
+
preserveSymlinks?: boolean
|
117
|
+
/** Documentation: https://esbuild.github.io/api/#outfile */
|
118
|
+
outfile?: string
|
119
|
+
/** Documentation: https://esbuild.github.io/api/#metafile */
|
120
|
+
metafile?: boolean
|
121
|
+
/** Documentation: https://esbuild.github.io/api/#outdir */
|
122
|
+
outdir?: string
|
123
|
+
/** Documentation: https://esbuild.github.io/api/#outbase */
|
124
|
+
outbase?: string
|
125
|
+
/** Documentation: https://esbuild.github.io/api/#external */
|
126
|
+
external?: string[]
|
127
|
+
/** Documentation: https://esbuild.github.io/api/#packages */
|
128
|
+
packages?: 'external'
|
129
|
+
/** Documentation: https://esbuild.github.io/api/#alias */
|
130
|
+
alias?: Record<string, string>
|
131
|
+
/** Documentation: https://esbuild.github.io/api/#loader */
|
132
|
+
loader?: { [ext: string]: Loader }
|
133
|
+
/** Documentation: https://esbuild.github.io/api/#resolve-extensions */
|
134
|
+
resolveExtensions?: string[]
|
135
|
+
/** Documentation: https://esbuild.github.io/api/#main-fields */
|
136
|
+
mainFields?: string[]
|
137
|
+
/** Documentation: https://esbuild.github.io/api/#conditions */
|
138
|
+
conditions?: string[]
|
139
|
+
/** Documentation: https://esbuild.github.io/api/#write */
|
140
|
+
write?: boolean
|
141
|
+
/** Documentation: https://esbuild.github.io/api/#allow-overwrite */
|
142
|
+
allowOverwrite?: boolean
|
143
|
+
/** Documentation: https://esbuild.github.io/api/#tsconfig */
|
144
|
+
tsconfig?: string
|
145
|
+
/** Documentation: https://esbuild.github.io/api/#out-extension */
|
146
|
+
outExtension?: { [ext: string]: string }
|
147
|
+
/** Documentation: https://esbuild.github.io/api/#public-path */
|
148
|
+
publicPath?: string
|
149
|
+
/** Documentation: https://esbuild.github.io/api/#entry-names */
|
150
|
+
entryNames?: string
|
151
|
+
/** Documentation: https://esbuild.github.io/api/#chunk-names */
|
152
|
+
chunkNames?: string
|
153
|
+
/** Documentation: https://esbuild.github.io/api/#asset-names */
|
154
|
+
assetNames?: string
|
155
|
+
/** Documentation: https://esbuild.github.io/api/#inject */
|
156
|
+
inject?: string[]
|
157
|
+
/** Documentation: https://esbuild.github.io/api/#banner */
|
158
|
+
banner?: { [type: string]: string }
|
159
|
+
/** Documentation: https://esbuild.github.io/api/#footer */
|
160
|
+
footer?: { [type: string]: string }
|
161
|
+
/** Documentation: https://esbuild.github.io/api/#entry-points */
|
162
|
+
entryPoints?: string[] | Record<string, string> | { in: string, out: string }[]
|
163
|
+
/** Documentation: https://esbuild.github.io/api/#stdin */
|
164
|
+
stdin?: StdinOptions
|
165
|
+
/** Documentation: https://esbuild.github.io/plugins/ */
|
166
|
+
plugins?: Plugin[]
|
167
|
+
/** Documentation: https://esbuild.github.io/api/#working-directory */
|
168
|
+
absWorkingDir?: string
|
169
|
+
/** Documentation: https://esbuild.github.io/api/#node-paths */
|
170
|
+
nodePaths?: string[]; // The "NODE_PATH" variable from Node.js
|
171
|
+
}
|
172
|
+
|
173
|
+
export interface StdinOptions {
|
174
|
+
contents: string | Uint8Array
|
175
|
+
resolveDir?: string
|
176
|
+
sourcefile?: string
|
177
|
+
loader?: Loader
|
178
|
+
}
|
179
|
+
|
180
|
+
export interface Message {
|
181
|
+
id: string
|
182
|
+
pluginName: string
|
183
|
+
text: string
|
184
|
+
location: Location | null
|
185
|
+
notes: Note[]
|
186
|
+
|
187
|
+
/**
|
188
|
+
* Optional user-specified data that is passed through unmodified. You can
|
189
|
+
* use this to stash the original error, for example.
|
190
|
+
*/
|
191
|
+
detail: any
|
192
|
+
}
|
193
|
+
|
194
|
+
export interface Note {
|
195
|
+
text: string
|
196
|
+
location: Location | null
|
197
|
+
}
|
198
|
+
|
199
|
+
export interface Location {
|
200
|
+
file: string
|
201
|
+
namespace: string
|
202
|
+
/** 1-based */
|
203
|
+
line: number
|
204
|
+
/** 0-based, in bytes */
|
205
|
+
column: number
|
206
|
+
/** in bytes */
|
207
|
+
length: number
|
208
|
+
lineText: string
|
209
|
+
suggestion: string
|
210
|
+
}
|
211
|
+
|
212
|
+
export interface OutputFile {
|
213
|
+
path: string
|
214
|
+
contents: Uint8Array
|
215
|
+
hash: string
|
216
|
+
/** "contents" as text (changes automatically with "contents") */
|
217
|
+
readonly text: string
|
218
|
+
}
|
219
|
+
|
220
|
+
export interface BuildResult<ProvidedOptions extends BuildOptions = BuildOptions> {
|
221
|
+
errors: Message[]
|
222
|
+
warnings: Message[]
|
223
|
+
/** Only when "write: false" */
|
224
|
+
outputFiles: OutputFile[] | (ProvidedOptions['write'] extends false ? never : undefined)
|
225
|
+
/** Only when "metafile: true" */
|
226
|
+
metafile: Metafile | (ProvidedOptions['metafile'] extends true ? never : undefined)
|
227
|
+
/** Only when "mangleCache" is present */
|
228
|
+
mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
|
229
|
+
}
|
230
|
+
|
231
|
+
export interface BuildFailure extends Error {
|
232
|
+
errors: Message[]
|
233
|
+
warnings: Message[]
|
234
|
+
}
|
235
|
+
|
236
|
+
/** Documentation: https://esbuild.github.io/api/#serve-arguments */
|
237
|
+
export interface ServeOptions {
|
238
|
+
port?: number
|
239
|
+
host?: string
|
240
|
+
servedir?: string
|
241
|
+
keyfile?: string
|
242
|
+
certfile?: string
|
243
|
+
fallback?: string
|
244
|
+
onRequest?: (args: ServeOnRequestArgs) => void
|
245
|
+
}
|
246
|
+
|
247
|
+
export interface ServeOnRequestArgs {
|
248
|
+
remoteAddress: string
|
249
|
+
method: string
|
250
|
+
path: string
|
251
|
+
status: number
|
252
|
+
/** The time to generate the response, not to send it */
|
253
|
+
timeInMS: number
|
254
|
+
}
|
255
|
+
|
256
|
+
/** Documentation: https://esbuild.github.io/api/#serve-return-values */
|
257
|
+
export interface ServeResult {
|
258
|
+
port: number
|
259
|
+
host: string
|
260
|
+
}
|
261
|
+
|
262
|
+
export interface TransformOptions extends CommonOptions {
|
263
|
+
/** Documentation: https://esbuild.github.io/api/#sourcefile */
|
264
|
+
sourcefile?: string
|
265
|
+
/** Documentation: https://esbuild.github.io/api/#loader */
|
266
|
+
loader?: Loader
|
267
|
+
/** Documentation: https://esbuild.github.io/api/#banner */
|
268
|
+
banner?: string
|
269
|
+
/** Documentation: https://esbuild.github.io/api/#footer */
|
270
|
+
footer?: string
|
271
|
+
}
|
272
|
+
|
273
|
+
export interface TransformResult<ProvidedOptions extends TransformOptions = TransformOptions> {
|
274
|
+
code: string
|
275
|
+
map: string
|
276
|
+
warnings: Message[]
|
277
|
+
/** Only when "mangleCache" is present */
|
278
|
+
mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
|
279
|
+
/** Only when "legalComments" is "external" */
|
280
|
+
legalComments: string | (ProvidedOptions['legalComments'] extends 'external' ? never : undefined)
|
281
|
+
}
|
282
|
+
|
283
|
+
export interface TransformFailure extends Error {
|
284
|
+
errors: Message[]
|
285
|
+
warnings: Message[]
|
286
|
+
}
|
287
|
+
|
288
|
+
export interface Plugin {
|
289
|
+
name: string
|
290
|
+
setup: (build: PluginBuild) => (void | Promise<void>)
|
291
|
+
}
|
292
|
+
|
293
|
+
export interface PluginBuild {
|
294
|
+
/** Documentation: https://esbuild.github.io/plugins/#build-options */
|
295
|
+
initialOptions: BuildOptions
|
296
|
+
|
297
|
+
/** Documentation: https://esbuild.github.io/plugins/#resolve */
|
298
|
+
resolve(path: string, options?: ResolveOptions): Promise<ResolveResult>
|
299
|
+
|
300
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-start */
|
301
|
+
onStart(callback: () =>
|
302
|
+
(OnStartResult | null | void | Promise<OnStartResult | null | void>)): void
|
303
|
+
|
304
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-end */
|
305
|
+
onEnd(callback: (result: BuildResult) =>
|
306
|
+
(OnEndResult | null | void | Promise<OnEndResult | null | void>)): void
|
307
|
+
|
308
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-resolve */
|
309
|
+
onResolve(options: OnResolveOptions, callback: (args: OnResolveArgs) =>
|
310
|
+
(OnResolveResult | null | undefined | Promise<OnResolveResult | null | undefined>)): void
|
311
|
+
|
312
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-load */
|
313
|
+
onLoad(options: OnLoadOptions, callback: (args: OnLoadArgs) =>
|
314
|
+
(OnLoadResult | null | undefined | Promise<OnLoadResult | null | undefined>)): void
|
315
|
+
|
316
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-dispose */
|
317
|
+
onDispose(callback: () => void): void
|
318
|
+
|
319
|
+
// This is a full copy of the esbuild library in case you need it
|
320
|
+
esbuild: {
|
321
|
+
context: typeof context,
|
322
|
+
build: typeof build,
|
323
|
+
buildSync: typeof buildSync,
|
324
|
+
transform: typeof transform,
|
325
|
+
transformSync: typeof transformSync,
|
326
|
+
formatMessages: typeof formatMessages,
|
327
|
+
formatMessagesSync: typeof formatMessagesSync,
|
328
|
+
analyzeMetafile: typeof analyzeMetafile,
|
329
|
+
analyzeMetafileSync: typeof analyzeMetafileSync,
|
330
|
+
initialize: typeof initialize,
|
331
|
+
version: typeof version,
|
332
|
+
}
|
333
|
+
}
|
334
|
+
|
335
|
+
/** Documentation: https://esbuild.github.io/plugins/#resolve-options */
|
336
|
+
export interface ResolveOptions {
|
337
|
+
pluginName?: string
|
338
|
+
importer?: string
|
339
|
+
namespace?: string
|
340
|
+
resolveDir?: string
|
341
|
+
kind?: ImportKind
|
342
|
+
pluginData?: any
|
343
|
+
}
|
344
|
+
|
345
|
+
/** Documentation: https://esbuild.github.io/plugins/#resolve-results */
|
346
|
+
export interface ResolveResult {
|
347
|
+
errors: Message[]
|
348
|
+
warnings: Message[]
|
349
|
+
|
350
|
+
path: string
|
351
|
+
external: boolean
|
352
|
+
sideEffects: boolean
|
353
|
+
namespace: string
|
354
|
+
suffix: string
|
355
|
+
pluginData: any
|
356
|
+
}
|
357
|
+
|
358
|
+
export interface OnStartResult {
|
359
|
+
errors?: PartialMessage[]
|
360
|
+
warnings?: PartialMessage[]
|
361
|
+
}
|
362
|
+
|
363
|
+
export interface OnEndResult {
|
364
|
+
errors?: PartialMessage[]
|
365
|
+
warnings?: PartialMessage[]
|
366
|
+
}
|
367
|
+
|
368
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-options */
|
369
|
+
export interface OnResolveOptions {
|
370
|
+
filter: RegExp
|
371
|
+
namespace?: string
|
372
|
+
}
|
373
|
+
|
374
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-arguments */
|
375
|
+
export interface OnResolveArgs {
|
376
|
+
path: string
|
377
|
+
importer: string
|
378
|
+
namespace: string
|
379
|
+
resolveDir: string
|
380
|
+
kind: ImportKind
|
381
|
+
pluginData: any
|
382
|
+
}
|
383
|
+
|
384
|
+
export type ImportKind =
|
385
|
+
| 'entry-point'
|
386
|
+
|
387
|
+
// JS
|
388
|
+
| 'import-statement'
|
389
|
+
| 'require-call'
|
390
|
+
| 'dynamic-import'
|
391
|
+
| 'require-resolve'
|
392
|
+
|
393
|
+
// CSS
|
394
|
+
| 'import-rule'
|
395
|
+
| 'composes-from'
|
396
|
+
| 'url-token'
|
397
|
+
|
398
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-results */
|
399
|
+
export interface OnResolveResult {
|
400
|
+
pluginName?: string
|
401
|
+
|
402
|
+
errors?: PartialMessage[]
|
403
|
+
warnings?: PartialMessage[]
|
404
|
+
|
405
|
+
path?: string
|
406
|
+
external?: boolean
|
407
|
+
sideEffects?: boolean
|
408
|
+
namespace?: string
|
409
|
+
suffix?: string
|
410
|
+
pluginData?: any
|
411
|
+
|
412
|
+
watchFiles?: string[]
|
413
|
+
watchDirs?: string[]
|
414
|
+
}
|
415
|
+
|
416
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-load-options */
|
417
|
+
export interface OnLoadOptions {
|
418
|
+
filter: RegExp
|
419
|
+
namespace?: string
|
420
|
+
}
|
421
|
+
|
422
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-load-arguments */
|
423
|
+
export interface OnLoadArgs {
|
424
|
+
path: string
|
425
|
+
namespace: string
|
426
|
+
suffix: string
|
427
|
+
pluginData: any
|
428
|
+
with: Record<string, string>
|
429
|
+
}
|
430
|
+
|
431
|
+
/** Documentation: https://esbuild.github.io/plugins/#on-load-results */
|
432
|
+
export interface OnLoadResult {
|
433
|
+
pluginName?: string
|
434
|
+
|
435
|
+
errors?: PartialMessage[]
|
436
|
+
warnings?: PartialMessage[]
|
437
|
+
|
438
|
+
contents?: string | Uint8Array
|
439
|
+
resolveDir?: string
|
440
|
+
loader?: Loader
|
441
|
+
pluginData?: any
|
442
|
+
|
443
|
+
watchFiles?: string[]
|
444
|
+
watchDirs?: string[]
|
445
|
+
}
|
446
|
+
|
447
|
+
export interface PartialMessage {
|
448
|
+
id?: string
|
449
|
+
pluginName?: string
|
450
|
+
text?: string
|
451
|
+
location?: Partial<Location> | null
|
452
|
+
notes?: PartialNote[]
|
453
|
+
detail?: any
|
454
|
+
}
|
455
|
+
|
456
|
+
export interface PartialNote {
|
457
|
+
text?: string
|
458
|
+
location?: Partial<Location> | null
|
459
|
+
}
|
460
|
+
|
461
|
+
/** Documentation: https://esbuild.github.io/api/#metafile */
|
462
|
+
export interface Metafile {
|
463
|
+
inputs: {
|
464
|
+
[path: string]: {
|
465
|
+
bytes: number
|
466
|
+
imports: {
|
467
|
+
path: string
|
468
|
+
kind: ImportKind
|
469
|
+
external?: boolean
|
470
|
+
original?: string
|
471
|
+
with?: Record<string, string>
|
472
|
+
}[]
|
473
|
+
format?: 'cjs' | 'esm'
|
474
|
+
with?: Record<string, string>
|
475
|
+
}
|
476
|
+
}
|
477
|
+
outputs: {
|
478
|
+
[path: string]: {
|
479
|
+
bytes: number
|
480
|
+
inputs: {
|
481
|
+
[path: string]: {
|
482
|
+
bytesInOutput: number
|
483
|
+
}
|
484
|
+
}
|
485
|
+
imports: {
|
486
|
+
path: string
|
487
|
+
kind: ImportKind | 'file-loader'
|
488
|
+
external?: boolean
|
489
|
+
}[]
|
490
|
+
exports: string[]
|
491
|
+
entryPoint?: string
|
492
|
+
cssBundle?: string
|
493
|
+
}
|
494
|
+
}
|
495
|
+
}
|
496
|
+
|
497
|
+
export interface FormatMessagesOptions {
|
498
|
+
kind: 'error' | 'warning'
|
499
|
+
color?: boolean
|
500
|
+
terminalWidth?: number
|
501
|
+
}
|
502
|
+
|
503
|
+
export interface AnalyzeMetafileOptions {
|
504
|
+
color?: boolean
|
505
|
+
verbose?: boolean
|
506
|
+
}
|
507
|
+
|
508
|
+
export interface WatchOptions {
|
509
|
+
}
|
510
|
+
|
511
|
+
export interface BuildContext<ProvidedOptions extends BuildOptions = BuildOptions> {
|
512
|
+
/** Documentation: https://esbuild.github.io/api/#rebuild */
|
513
|
+
rebuild(): Promise<BuildResult<ProvidedOptions>>
|
514
|
+
|
515
|
+
/** Documentation: https://esbuild.github.io/api/#watch */
|
516
|
+
watch(options?: WatchOptions): Promise<void>
|
517
|
+
|
518
|
+
/** Documentation: https://esbuild.github.io/api/#serve */
|
519
|
+
serve(options?: ServeOptions): Promise<ServeResult>
|
520
|
+
|
521
|
+
cancel(): Promise<void>
|
522
|
+
dispose(): Promise<void>
|
523
|
+
}
|
524
|
+
|
525
|
+
// This is a TypeScript type-level function which replaces any keys in "In"
|
526
|
+
// that aren't in "Out" with "never". We use this to reject properties with
|
527
|
+
// typos in object literals. See: https://stackoverflow.com/questions/49580725
|
528
|
+
type SameShape<Out, In extends Out> = In & { [Key in Exclude<keyof In, keyof Out>]: never }
|
529
|
+
|
530
|
+
/**
|
531
|
+
* This function invokes the "esbuild" command-line tool for you. It returns a
|
532
|
+
* promise that either resolves with a "BuildResult" object or rejects with a
|
533
|
+
* "BuildFailure" object.
|
534
|
+
*
|
535
|
+
* - Works in node: yes
|
536
|
+
* - Works in browser: yes
|
537
|
+
*
|
538
|
+
* Documentation: https://esbuild.github.io/api/#build
|
539
|
+
*/
|
540
|
+
export declare function build<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildResult<T>>
|
541
|
+
|
542
|
+
/**
|
543
|
+
* This is the advanced long-running form of "build" that supports additional
|
544
|
+
* features such as watch mode and a local development server.
|
545
|
+
*
|
546
|
+
* - Works in node: yes
|
547
|
+
* - Works in browser: no
|
548
|
+
*
|
549
|
+
* Documentation: https://esbuild.github.io/api/#build
|
550
|
+
*/
|
551
|
+
export declare function context<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildContext<T>>
|
552
|
+
|
553
|
+
/**
|
554
|
+
* This function transforms a single JavaScript file. It can be used to minify
|
555
|
+
* JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
|
556
|
+
* to older JavaScript. It returns a promise that is either resolved with a
|
557
|
+
* "TransformResult" object or rejected with a "TransformFailure" object.
|
558
|
+
*
|
559
|
+
* - Works in node: yes
|
560
|
+
* - Works in browser: yes
|
561
|
+
*
|
562
|
+
* Documentation: https://esbuild.github.io/api/#transform
|
563
|
+
*/
|
564
|
+
export declare function transform<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): Promise<TransformResult<T>>
|
565
|
+
|
566
|
+
/**
|
567
|
+
* Converts log messages to formatted message strings suitable for printing in
|
568
|
+
* the terminal. This allows you to reuse the built-in behavior of esbuild's
|
569
|
+
* log message formatter. This is a batch-oriented API for efficiency.
|
570
|
+
*
|
571
|
+
* - Works in node: yes
|
572
|
+
* - Works in browser: yes
|
573
|
+
*/
|
574
|
+
export declare function formatMessages(messages: PartialMessage[], options: FormatMessagesOptions): Promise<string[]>
|
575
|
+
|
576
|
+
/**
|
577
|
+
* Pretty-prints an analysis of the metafile JSON to a string. This is just for
|
578
|
+
* convenience to be able to match esbuild's pretty-printing exactly. If you want
|
579
|
+
* to customize it, you can just inspect the data in the metafile yourself.
|
580
|
+
*
|
581
|
+
* - Works in node: yes
|
582
|
+
* - Works in browser: yes
|
583
|
+
*
|
584
|
+
* Documentation: https://esbuild.github.io/api/#analyze
|
585
|
+
*/
|
586
|
+
export declare function analyzeMetafile(metafile: Metafile | string, options?: AnalyzeMetafileOptions): Promise<string>
|
587
|
+
|
588
|
+
/**
|
589
|
+
* A synchronous version of "build".
|
590
|
+
*
|
591
|
+
* - Works in node: yes
|
592
|
+
* - Works in browser: no
|
593
|
+
*
|
594
|
+
* Documentation: https://esbuild.github.io/api/#build
|
595
|
+
*/
|
596
|
+
export declare function buildSync<T extends BuildOptions>(options: SameShape<BuildOptions, T>): BuildResult<T>
|
597
|
+
|
598
|
+
/**
|
599
|
+
* A synchronous version of "transform".
|
600
|
+
*
|
601
|
+
* - Works in node: yes
|
602
|
+
* - Works in browser: no
|
603
|
+
*
|
604
|
+
* Documentation: https://esbuild.github.io/api/#transform
|
605
|
+
*/
|
606
|
+
export declare function transformSync<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): TransformResult<T>
|
607
|
+
|
608
|
+
/**
|
609
|
+
* A synchronous version of "formatMessages".
|
610
|
+
*
|
611
|
+
* - Works in node: yes
|
612
|
+
* - Works in browser: no
|
613
|
+
*/
|
614
|
+
export declare function formatMessagesSync(messages: PartialMessage[], options: FormatMessagesOptions): string[]
|
615
|
+
|
616
|
+
/**
|
617
|
+
* A synchronous version of "analyzeMetafile".
|
618
|
+
*
|
619
|
+
* - Works in node: yes
|
620
|
+
* - Works in browser: no
|
621
|
+
*
|
622
|
+
* Documentation: https://esbuild.github.io/api/#analyze
|
623
|
+
*/
|
624
|
+
export declare function analyzeMetafileSync(metafile: Metafile | string, options?: AnalyzeMetafileOptions): string
|
625
|
+
|
626
|
+
/**
|
627
|
+
* This configures the browser-based version of esbuild. It is necessary to
|
628
|
+
* call this first and wait for the returned promise to be resolved before
|
629
|
+
* making other API calls when using esbuild in the browser.
|
630
|
+
*
|
631
|
+
* - Works in node: yes
|
632
|
+
* - Works in browser: yes ("options" is required)
|
633
|
+
*
|
634
|
+
* Documentation: https://esbuild.github.io/api/#browser
|
635
|
+
*/
|
636
|
+
export declare function initialize(options: InitializeOptions): Promise<void>
|
637
|
+
|
638
|
+
export interface InitializeOptions {
|
639
|
+
/**
|
640
|
+
* The URL of the "esbuild.wasm" file. This must be provided when running
|
641
|
+
* esbuild in the browser.
|
642
|
+
*/
|
643
|
+
wasmURL?: string | URL
|
644
|
+
|
645
|
+
/**
|
646
|
+
* The result of calling "new WebAssembly.Module(buffer)" where "buffer"
|
647
|
+
* is a typed array or ArrayBuffer containing the binary code of the
|
648
|
+
* "esbuild.wasm" file.
|
649
|
+
*
|
650
|
+
* You can use this as an alternative to "wasmURL" for environments where it's
|
651
|
+
* not possible to download the WebAssembly module.
|
652
|
+
*/
|
653
|
+
wasmModule?: WebAssembly.Module
|
654
|
+
|
655
|
+
/**
|
656
|
+
* By default esbuild runs the WebAssembly-based browser API in a web worker
|
657
|
+
* to avoid blocking the UI thread. This can be disabled by setting "worker"
|
658
|
+
* to false.
|
659
|
+
*/
|
660
|
+
worker?: boolean
|
661
|
+
}
|
662
|
+
|
663
|
+
export let version: string
|
664
|
+
|
665
|
+
// Call this function to terminate esbuild's child process. The child process
|
666
|
+
// is not terminated and re-created after each API call because it's more
|
667
|
+
// efficient to keep it around when there are multiple API calls.
|
668
|
+
//
|
669
|
+
// In node this happens automatically before the parent node process exits. So
|
670
|
+
// you only need to call this if you know you will not make any more esbuild
|
671
|
+
// API calls and you want to clean up resources.
|
672
|
+
//
|
673
|
+
// Unlike node, Deno lacks the necessary APIs to clean up child processes
|
674
|
+
// automatically. You must manually call stop() in Deno when you're done
|
675
|
+
// using esbuild or Deno will continue running forever.
|
676
|
+
//
|
677
|
+
// Another reason you might want to call this is if you are using esbuild from
|
678
|
+
// within a Deno test. Deno fails tests that create a child process without
|
679
|
+
// killing it before the test ends, so you have to call this function (and
|
680
|
+
// await the returned promise) in every Deno test that uses esbuild.
|
681
|
+
export declare function stop(): Promise<void>
|
682
|
+
|
683
|
+
// Note: These declarations exist to avoid type errors when you omit "dom" from
|
684
|
+
// "lib" in your "tsconfig.json" file. TypeScript confusingly declares the
|
685
|
+
// global "WebAssembly" type in "lib.dom.d.ts" even though it has nothing to do
|
686
|
+
// with the browser DOM and is present in many non-browser JavaScript runtimes
|
687
|
+
// (e.g. node and deno). Declaring it here allows esbuild's API to be used in
|
688
|
+
// these scenarios.
|
689
|
+
//
|
690
|
+
// There's an open issue about getting this problem corrected (although these
|
691
|
+
// declarations will need to remain even if this is fixed for backward
|
692
|
+
// compatibility with older TypeScript versions):
|
693
|
+
//
|
694
|
+
// https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/826
|
695
|
+
//
|
696
|
+
declare global {
|
697
|
+
namespace WebAssembly {
|
698
|
+
interface Module {
|
699
|
+
}
|
700
|
+
}
|
701
|
+
interface URL {
|
702
|
+
}
|
703
|
+
}
|