bun-types 1.3.2-canary.20251104T140728 → 1.3.2-canary.20251106T140813

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/bun.d.ts +4 -4
  2. package/docs/README.md +28 -0
  3. package/globals.d.ts +0 -1
  4. package/overrides.d.ts +45 -15
  5. package/package.json +1 -1
  6. package/test.d.ts +1 -1
  7. package/docs/api/binary-data.md +0 -1038
  8. package/docs/api/cc.md +0 -197
  9. package/docs/api/color.md +0 -262
  10. package/docs/api/console.md +0 -57
  11. package/docs/api/cookie.md +0 -449
  12. package/docs/api/dns.md +0 -110
  13. package/docs/api/fetch.md +0 -463
  14. package/docs/api/ffi.md +0 -557
  15. package/docs/api/file-io.md +0 -366
  16. package/docs/api/file-system-router.md +0 -112
  17. package/docs/api/file.md +0 -19
  18. package/docs/api/glob.md +0 -178
  19. package/docs/api/globals.md +0 -387
  20. package/docs/api/hashing.md +0 -319
  21. package/docs/api/html-rewriter.md +0 -334
  22. package/docs/api/http.md +0 -1408
  23. package/docs/api/import-meta.md +0 -69
  24. package/docs/api/node-api.md +0 -14
  25. package/docs/api/redis.md +0 -597
  26. package/docs/api/s3.md +0 -850
  27. package/docs/api/secrets.md +0 -319
  28. package/docs/api/semver.md +0 -52
  29. package/docs/api/spawn.md +0 -582
  30. package/docs/api/sql.md +0 -1374
  31. package/docs/api/sqlite.md +0 -694
  32. package/docs/api/streams.md +0 -230
  33. package/docs/api/tcp.md +0 -221
  34. package/docs/api/transpiler.md +0 -276
  35. package/docs/api/udp.md +0 -123
  36. package/docs/api/utils.md +0 -891
  37. package/docs/api/websockets.md +0 -573
  38. package/docs/api/workers.md +0 -322
  39. package/docs/api/yaml.md +0 -668
  40. package/docs/benchmarks.md +0 -120
  41. package/docs/bun-flavored-toml.md +0 -42
  42. package/docs/bundler/css.md +0 -1028
  43. package/docs/bundler/css_modules.md +0 -145
  44. package/docs/bundler/executables.md +0 -626
  45. package/docs/bundler/fullstack.md +0 -418
  46. package/docs/bundler/hmr.md +0 -234
  47. package/docs/bundler/html.md +0 -349
  48. package/docs/bundler/index.md +0 -1735
  49. package/docs/bundler/intro.md +0 -75
  50. package/docs/bundler/loaders.md +0 -410
  51. package/docs/bundler/macros.md +0 -329
  52. package/docs/bundler/plugins.md +0 -449
  53. package/docs/bundler/vs-esbuild.md +0 -1127
  54. package/docs/cli/add.md +0 -173
  55. package/docs/cli/bun-completions.md +0 -3
  56. package/docs/cli/bun-create.md +0 -338
  57. package/docs/cli/bun-install.md +0 -349
  58. package/docs/cli/bun-upgrade.md +0 -39
  59. package/docs/cli/bunx.md +0 -89
  60. package/docs/cli/filter.md +0 -90
  61. package/docs/cli/info.md +0 -65
  62. package/docs/cli/init.md +0 -85
  63. package/docs/cli/install.md +0 -344
  64. package/docs/cli/link.md +0 -40
  65. package/docs/cli/outdated.md +0 -90
  66. package/docs/cli/patch-commit.md +0 -11
  67. package/docs/cli/pm.md +0 -285
  68. package/docs/cli/publish.md +0 -120
  69. package/docs/cli/remove.md +0 -7
  70. package/docs/cli/run.md +0 -261
  71. package/docs/cli/test.md +0 -397
  72. package/docs/cli/unlink.md +0 -9
  73. package/docs/cli/update.md +0 -129
  74. package/docs/cli/why.md +0 -67
  75. package/docs/contributing/upgrading-webkit.md +0 -57
  76. package/docs/ecosystem/elysia.md +0 -24
  77. package/docs/ecosystem/express.md +0 -37
  78. package/docs/ecosystem/hono.md +0 -18
  79. package/docs/ecosystem/react.md +0 -65
  80. package/docs/ecosystem/stric.md +0 -38
  81. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  82. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  83. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  84. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  85. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  86. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  87. package/docs/guides/binary/blob-to-dataview.md +0 -14
  88. package/docs/guides/binary/blob-to-stream.md +0 -14
  89. package/docs/guides/binary/blob-to-string.md +0 -15
  90. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  91. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  92. package/docs/guides/binary/buffer-to-blob.md +0 -14
  93. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  94. package/docs/guides/binary/buffer-to-string.md +0 -25
  95. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  96. package/docs/guides/binary/dataview-to-string.md +0 -15
  97. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  98. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  99. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  100. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  101. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  102. package/docs/guides/binary/typedarray-to-string.md +0 -16
  103. package/docs/guides/deployment/railway.md +0 -157
  104. package/docs/guides/ecosystem/astro.md +0 -72
  105. package/docs/guides/ecosystem/discordjs.md +0 -77
  106. package/docs/guides/ecosystem/docker.md +0 -140
  107. package/docs/guides/ecosystem/drizzle.md +0 -185
  108. package/docs/guides/ecosystem/edgedb.md +0 -228
  109. package/docs/guides/ecosystem/elysia.md +0 -31
  110. package/docs/guides/ecosystem/express.md +0 -40
  111. package/docs/guides/ecosystem/hono.md +0 -39
  112. package/docs/guides/ecosystem/mongoose.md +0 -87
  113. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  114. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  115. package/docs/guides/ecosystem/nextjs.md +0 -49
  116. package/docs/guides/ecosystem/nuxt.md +0 -56
  117. package/docs/guides/ecosystem/pm2.md +0 -57
  118. package/docs/guides/ecosystem/prisma.md +0 -141
  119. package/docs/guides/ecosystem/qwik.md +0 -107
  120. package/docs/guides/ecosystem/react.md +0 -50
  121. package/docs/guides/ecosystem/remix.md +0 -78
  122. package/docs/guides/ecosystem/render.md +0 -79
  123. package/docs/guides/ecosystem/sentry.md +0 -52
  124. package/docs/guides/ecosystem/solidstart.md +0 -58
  125. package/docs/guides/ecosystem/ssr-react.md +0 -51
  126. package/docs/guides/ecosystem/stric.md +0 -55
  127. package/docs/guides/ecosystem/sveltekit.md +0 -125
  128. package/docs/guides/ecosystem/systemd.md +0 -113
  129. package/docs/guides/ecosystem/vite.md +0 -71
  130. package/docs/guides/html-rewriter/extract-links.md +0 -68
  131. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  132. package/docs/guides/http/cluster.md +0 -66
  133. package/docs/guides/http/fetch-unix.md +0 -33
  134. package/docs/guides/http/fetch.md +0 -24
  135. package/docs/guides/http/file-uploads.md +0 -94
  136. package/docs/guides/http/hot.md +0 -26
  137. package/docs/guides/http/proxy.md +0 -24
  138. package/docs/guides/http/server.md +0 -46
  139. package/docs/guides/http/simple.md +0 -18
  140. package/docs/guides/http/stream-file.md +0 -48
  141. package/docs/guides/http/stream-iterator.md +0 -47
  142. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  143. package/docs/guides/http/tls.md +0 -30
  144. package/docs/guides/install/add-dev.md +0 -26
  145. package/docs/guides/install/add-git.md +0 -36
  146. package/docs/guides/install/add-optional.md +0 -25
  147. package/docs/guides/install/add-peer.md +0 -43
  148. package/docs/guides/install/add-tarball.md +0 -33
  149. package/docs/guides/install/add.md +0 -42
  150. package/docs/guides/install/azure-artifacts.md +0 -73
  151. package/docs/guides/install/cicd.md +0 -41
  152. package/docs/guides/install/custom-registry.md +0 -30
  153. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  154. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  155. package/docs/guides/install/jfrog-artifactory.md +0 -28
  156. package/docs/guides/install/npm-alias.md +0 -23
  157. package/docs/guides/install/registry-scope.md +0 -38
  158. package/docs/guides/install/trusted.md +0 -46
  159. package/docs/guides/install/workspaces.md +0 -70
  160. package/docs/guides/install/yarnlock.md +0 -44
  161. package/docs/guides/process/argv.md +0 -58
  162. package/docs/guides/process/ctrl-c.md +0 -16
  163. package/docs/guides/process/ipc.md +0 -66
  164. package/docs/guides/process/nanoseconds.md +0 -13
  165. package/docs/guides/process/os-signals.md +0 -39
  166. package/docs/guides/process/spawn-stderr.md +0 -31
  167. package/docs/guides/process/spawn-stdout.md +0 -26
  168. package/docs/guides/process/spawn.md +0 -41
  169. package/docs/guides/process/stdin.md +0 -54
  170. package/docs/guides/read-file/arraybuffer.md +0 -28
  171. package/docs/guides/read-file/buffer.md +0 -19
  172. package/docs/guides/read-file/exists.md +0 -16
  173. package/docs/guides/read-file/json.md +0 -17
  174. package/docs/guides/read-file/mime.md +0 -20
  175. package/docs/guides/read-file/stream.md +0 -26
  176. package/docs/guides/read-file/string.md +0 -22
  177. package/docs/guides/read-file/uint8array.md +0 -21
  178. package/docs/guides/read-file/watch.md +0 -68
  179. package/docs/guides/runtime/build-time-constants.md +0 -293
  180. package/docs/guides/runtime/cicd.md +0 -43
  181. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  182. package/docs/guides/runtime/define-constant.md +0 -145
  183. package/docs/guides/runtime/delete-directory.md +0 -37
  184. package/docs/guides/runtime/delete-file.md +0 -19
  185. package/docs/guides/runtime/heap-snapshot.md +0 -26
  186. package/docs/guides/runtime/import-html.md +0 -15
  187. package/docs/guides/runtime/import-json.md +0 -44
  188. package/docs/guides/runtime/import-toml.md +0 -30
  189. package/docs/guides/runtime/import-yaml.md +0 -102
  190. package/docs/guides/runtime/read-env.md +0 -32
  191. package/docs/guides/runtime/set-env.md +0 -47
  192. package/docs/guides/runtime/shell.md +0 -40
  193. package/docs/guides/runtime/timezone.md +0 -35
  194. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  195. package/docs/guides/runtime/typescript.md +0 -49
  196. package/docs/guides/runtime/vscode-debugger.md +0 -47
  197. package/docs/guides/runtime/web-debugger.md +0 -82
  198. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  199. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  200. package/docs/guides/streams/node-readable-to-json.md +0 -12
  201. package/docs/guides/streams/node-readable-to-string.md +0 -12
  202. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  203. package/docs/guides/streams/to-array.md +0 -14
  204. package/docs/guides/streams/to-arraybuffer.md +0 -14
  205. package/docs/guides/streams/to-blob.md +0 -14
  206. package/docs/guides/streams/to-buffer.md +0 -15
  207. package/docs/guides/streams/to-json.md +0 -14
  208. package/docs/guides/streams/to-string.md +0 -14
  209. package/docs/guides/streams/to-typedarray.md +0 -22
  210. package/docs/guides/test/bail.md +0 -22
  211. package/docs/guides/test/coverage-threshold.md +0 -60
  212. package/docs/guides/test/coverage.md +0 -44
  213. package/docs/guides/test/happy-dom.md +0 -68
  214. package/docs/guides/test/migrate-from-jest.md +0 -143
  215. package/docs/guides/test/mock-clock.md +0 -48
  216. package/docs/guides/test/mock-functions.md +0 -68
  217. package/docs/guides/test/rerun-each.md +0 -14
  218. package/docs/guides/test/run-tests.md +0 -111
  219. package/docs/guides/test/skip-tests.md +0 -39
  220. package/docs/guides/test/snapshot.md +0 -95
  221. package/docs/guides/test/spy-on.md +0 -46
  222. package/docs/guides/test/svelte-test.md +0 -120
  223. package/docs/guides/test/testing-library.md +0 -92
  224. package/docs/guides/test/timeout.md +0 -15
  225. package/docs/guides/test/todo-tests.md +0 -67
  226. package/docs/guides/test/update-snapshots.md +0 -46
  227. package/docs/guides/test/watch-mode.md +0 -19
  228. package/docs/guides/util/base64.md +0 -15
  229. package/docs/guides/util/deep-equals.md +0 -39
  230. package/docs/guides/util/deflate.md +0 -18
  231. package/docs/guides/util/detect-bun.md +0 -23
  232. package/docs/guides/util/entrypoint.md +0 -17
  233. package/docs/guides/util/escape-html.md +0 -22
  234. package/docs/guides/util/file-url-to-path.md +0 -14
  235. package/docs/guides/util/gzip.md +0 -18
  236. package/docs/guides/util/hash-a-password.md +0 -54
  237. package/docs/guides/util/import-meta-dir.md +0 -13
  238. package/docs/guides/util/import-meta-file.md +0 -13
  239. package/docs/guides/util/import-meta-path.md +0 -13
  240. package/docs/guides/util/javascript-uuid.md +0 -23
  241. package/docs/guides/util/main.md +0 -32
  242. package/docs/guides/util/path-to-file-url.md +0 -14
  243. package/docs/guides/util/sleep.md +0 -22
  244. package/docs/guides/util/version.md +0 -21
  245. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  246. package/docs/guides/websocket/compression.md +0 -31
  247. package/docs/guides/websocket/context.md +0 -77
  248. package/docs/guides/websocket/pubsub.md +0 -41
  249. package/docs/guides/websocket/simple.md +0 -33
  250. package/docs/guides/write-file/append.md +0 -52
  251. package/docs/guides/write-file/basic.md +0 -44
  252. package/docs/guides/write-file/blob.md +0 -28
  253. package/docs/guides/write-file/cat.md +0 -17
  254. package/docs/guides/write-file/file-cp.md +0 -16
  255. package/docs/guides/write-file/filesink.md +0 -52
  256. package/docs/guides/write-file/response.md +0 -17
  257. package/docs/guides/write-file/stdout.md +0 -21
  258. package/docs/guides/write-file/stream.md +0 -17
  259. package/docs/guides/write-file/unlink.md +0 -16
  260. package/docs/index.md +0 -77
  261. package/docs/install/audit.md +0 -57
  262. package/docs/install/cache.md +0 -59
  263. package/docs/install/catalogs.md +0 -298
  264. package/docs/install/index.md +0 -248
  265. package/docs/install/isolated.md +0 -197
  266. package/docs/install/lifecycle.md +0 -46
  267. package/docs/install/lockfile.md +0 -58
  268. package/docs/install/npmrc.md +0 -105
  269. package/docs/install/overrides.md +0 -73
  270. package/docs/install/patch.md +0 -59
  271. package/docs/install/registries.md +0 -30
  272. package/docs/install/security-scanner-api.md +0 -81
  273. package/docs/install/workspaces.md +0 -114
  274. package/docs/installation.md +0 -327
  275. package/docs/project/asan.md +0 -124
  276. package/docs/project/benchmarking.md +0 -203
  277. package/docs/project/bindgen.md +0 -225
  278. package/docs/project/building-windows.md +0 -162
  279. package/docs/project/contributing.md +0 -347
  280. package/docs/project/internals/build-process-for-ci.md +0 -75
  281. package/docs/project/licensing.md +0 -73
  282. package/docs/project/roadmap.md +0 -87
  283. package/docs/quickstart.md +0 -157
  284. package/docs/runtime/autoimport.md +0 -94
  285. package/docs/runtime/bun-apis.md +0 -207
  286. package/docs/runtime/bunfig.md +0 -772
  287. package/docs/runtime/debugger.md +0 -325
  288. package/docs/runtime/env.md +0 -253
  289. package/docs/runtime/hot.md +0 -145
  290. package/docs/runtime/index.md +0 -312
  291. package/docs/runtime/jsx.md +0 -385
  292. package/docs/runtime/loaders.md +0 -130
  293. package/docs/runtime/modules.md +0 -320
  294. package/docs/runtime/nodejs-apis.md +0 -463
  295. package/docs/runtime/plugins.md +0 -561
  296. package/docs/runtime/shell.md +0 -605
  297. package/docs/runtime/typescript.md +0 -139
  298. package/docs/runtime/web-apis.md +0 -128
  299. package/docs/test/configuration.md +0 -154
  300. package/docs/test/coverage.md +0 -142
  301. package/docs/test/discovery.md +0 -85
  302. package/docs/test/dom.md +0 -75
  303. package/docs/test/examples/concurrent-test-glob.md +0 -132
  304. package/docs/test/hot.md +0 -15
  305. package/docs/test/lifecycle.md +0 -81
  306. package/docs/test/mocks.md +0 -313
  307. package/docs/test/reporters.md +0 -117
  308. package/docs/test/runtime-behavior.md +0 -95
  309. package/docs/test/snapshots.md +0 -68
  310. package/docs/test/time.md +0 -126
  311. package/docs/test/writing.md +0 -825
  312. package/docs/typescript.md +0 -53
@@ -1,1127 +0,0 @@
1
- Bun's bundler API is inspired heavily by [esbuild](https://esbuild.github.io/). Migrating to Bun's bundler from esbuild should be relatively painless. This guide will briefly explain why you might consider migrating to Bun's bundler and provide a side-by-side API comparison reference for those who are already familiar with esbuild's API.
2
-
3
- There are a few behavioral differences to note.
4
-
5
- - **Bundling by default**. Unlike esbuild, Bun _always bundles by default_. This is why the `--bundle` flag isn't necessary in the Bun example. To transpile each file individually, use [`Bun.Transpiler`](https://bun.com/docs/api/transpiler).
6
- - **It's just a bundler**. Unlike esbuild, Bun's bundler does not include a built-in development server or file watcher. It's just a bundler. The bundler is intended for use in conjunction with `Bun.serve` and other runtime APIs to achieve the same effect. As such, all options relating to HTTP/file watching are not applicable.
7
-
8
- ## Performance
9
-
10
- With a performance-minded API coupled with the extensively optimized Zig-based JS/TS parser, Bun's bundler is 1.75x faster than esbuild on esbuild's [three.js benchmark](https://github.com/oven-sh/bun/tree/main/bench/bundle).
11
-
12
- {% image src="/images/bundler-speed.png" caption="Bundling 10 copies of three.js from scratch, with sourcemaps and minification" /%}
13
-
14
- ## CLI API
15
-
16
- Bun and esbuild both provide a command-line interface.
17
-
18
- ```bash
19
- $ esbuild <entrypoint> --outdir=out --bundle
20
- $ bun build <entrypoint> --outdir=out
21
- ```
22
-
23
- In Bun's CLI, simple boolean flags like `--minify` do not accept an argument. Other flags like `--outdir <path>` do accept an argument; these flags can be written as `--outdir out` or `--outdir=out`. Some flags like `--define` can be specified several times: `--define foo=bar --define bar=baz`.
24
-
25
- {% table %}
26
-
27
- - `esbuild`
28
- - `bun build`
29
-
30
- ---
31
-
32
- - `--bundle`
33
- - n/a
34
- - Bun always bundles, use `--no-bundle` to disable this behavior.
35
-
36
- ---
37
-
38
- - `--define:K=V`
39
- - `--define K=V`
40
- - Small syntax difference; no colon.
41
-
42
- ```bash
43
- $ esbuild --define:foo=bar
44
- $ bun build --define foo=bar
45
- ```
46
-
47
- ---
48
-
49
- - `--external:<pkg>`
50
- - `--external <pkg>`
51
- - Small syntax difference; no colon.
52
-
53
- ```bash
54
- $ esbuild --external:react
55
- $ bun build --external react
56
- ```
57
-
58
- ---
59
-
60
- - `--format`
61
- - `--format`
62
- - Bun supports `"esm"` and `"cjs"` currently, but more module formats are planned. esbuild defaults to `"iife"`.
63
-
64
- ---
65
-
66
- - `--loader:.ext=loader`
67
- - `--loader .ext:loader`
68
- - Bun supports a different set of built-in loaders than esbuild; see [Bundler > Loaders](https://bun.com/docs/bundler/loaders) for a complete reference. The esbuild loaders `dataurl`, `binary`, `base64`, `copy`, and `empty` are not yet implemented.
69
-
70
- The syntax for `--loader` is slightly different.
71
-
72
- ```bash
73
- $ esbuild app.ts --bundle --loader:.svg=text
74
- $ bun build app.ts --loader .svg:text
75
- ```
76
-
77
- ---
78
-
79
- - `--minify`
80
- - `--minify`
81
- - No differences
82
-
83
- ---
84
-
85
- - `--outdir`
86
- - `--outdir`
87
- - No differences
88
-
89
- ---
90
-
91
- - `--outfile`
92
- - `--outfile`
93
-
94
- ---
95
-
96
- - `--packages`
97
- - `--packages`
98
- - No differences
99
-
100
- ---
101
-
102
- - `--platform`
103
- - `--target`
104
- - Renamed to `--target` for consistency with tsconfig. Does not support `neutral`.
105
-
106
- ---
107
-
108
- - `--serve`
109
- - n/a
110
- - Not applicable
111
-
112
- ---
113
-
114
- - `--sourcemap`
115
- - `--sourcemap`
116
- - No differences
117
-
118
- ---
119
-
120
- - `--splitting`
121
- - `--splitting`
122
- - No differences
123
-
124
- ---
125
-
126
- - `--target`
127
- - n/a
128
- - Not supported. Bun's bundler performs no syntactic down-leveling at this time.
129
-
130
- ---
131
-
132
- - `--watch`
133
- - `--watch`
134
- - No differences
135
-
136
- ---
137
-
138
- - `--allow-overwrite`
139
- - n/a
140
- - Overwriting is never allowed
141
-
142
- ---
143
-
144
- - `--analyze`
145
- - n/a
146
- - Not supported
147
-
148
- ---
149
-
150
- - `--asset-names`
151
- - `--asset-naming`
152
- - Renamed for consistency with `naming` in JS API
153
-
154
- ---
155
-
156
- - `--banner`
157
- - `--banner`
158
- - Only applies to js bundles
159
-
160
- ---
161
-
162
- - `--footer`
163
- - `--footer`
164
- - Only applies to js bundles
165
-
166
- ---
167
-
168
- - `--certfile`
169
- - n/a
170
- - Not applicable
171
-
172
- ---
173
-
174
- - `--charset=utf8`
175
- - n/a
176
- - Not supported
177
-
178
- ---
179
-
180
- - `--chunk-names`
181
- - `--chunk-naming`
182
- - Renamed for consistency with `naming` in JS API
183
-
184
- ---
185
-
186
- - `--color`
187
- - n/a
188
- - Always enabled
189
-
190
- ---
191
-
192
- - `--drop`
193
- - `--drop`
194
-
195
- ---
196
-
197
- - `--entry-names`
198
- - `--entry-naming`
199
- - Renamed for consistency with `naming` in JS API
200
-
201
- ---
202
-
203
- - `--global-name`
204
- - n/a
205
- - Not applicable, Bun does not support `iife` output at this time
206
-
207
- ---
208
-
209
- - `--ignore-annotations`
210
- - `--ignore-dce-annotations`
211
-
212
- ---
213
-
214
- - `--inject`
215
- - n/a
216
- - Not supported
217
-
218
- ---
219
-
220
- - `--jsx`
221
- - `--jsx-runtime <runtime>`
222
- - Supports `"automatic"` (uses `jsx` transform) and `"classic"` (uses `React.createElement`)
223
-
224
- ---
225
-
226
- - `--jsx-dev`
227
- - n/a
228
- - Bun reads `compilerOptions.jsx` from `tsconfig.json` to determine a default. If `compilerOptions.jsx` is `"react-jsx"`, or if `NODE_ENV=production`, Bun will use the `jsx` transform. Otherwise, it uses `jsxDEV`. For any to Bun uses `jsxDEV`. The bundler does not support `preserve`.
229
-
230
- ---
231
-
232
- - `--jsx-factory`
233
- - `--jsx-factory`
234
-
235
- ---
236
-
237
- - `--jsx-fragment`
238
- - `--jsx-fragment`
239
-
240
- ---
241
-
242
- - `--jsx-import-source`
243
- - `--jsx-import-source`
244
-
245
- ---
246
-
247
- - `--jsx-side-effects`
248
- - `--jsx-side-effects`
249
- - Controls whether JSX expressions are marked as `/* @__PURE__ */` for dead code elimination. Default is `false` (JSX marked as pure).
250
-
251
- ---
252
-
253
- - `--keep-names`
254
- - n/a
255
- - Not supported
256
-
257
- ---
258
-
259
- - `--keyfile`
260
- - n/a
261
- - Not applicable
262
-
263
- ---
264
-
265
- - `--legal-comments`
266
- - n/a
267
- - Not supported
268
-
269
- ---
270
-
271
- - `--log-level`
272
- - n/a
273
- - Not supported. This can be set in `bunfig.toml` as `logLevel`.
274
-
275
- ---
276
-
277
- - `--log-limit`
278
- - n/a
279
- - Not supported
280
-
281
- ---
282
-
283
- - `--log-override:X=Y`
284
- - n/a
285
- - Not supported
286
-
287
- ---
288
-
289
- - `--main-fields`
290
- - n/a
291
- - Not supported
292
-
293
- ---
294
-
295
- - `--mangle-cache`
296
- - n/a
297
- - Not supported
298
-
299
- ---
300
-
301
- - `--mangle-props`
302
- - n/a
303
- - Not supported
304
-
305
- ---
306
-
307
- - `--mangle-quoted`
308
- - n/a
309
- - Not supported
310
-
311
- ---
312
-
313
- - `--metafile`
314
- - n/a
315
- - Not supported
316
-
317
- ---
318
-
319
- - `--minify-whitespace`
320
- - `--minify-whitespace`
321
-
322
- ---
323
-
324
- - `--minify-identifiers`
325
- - `--minify-identifiers`
326
-
327
- ---
328
-
329
- - `--minify-syntax`
330
- - `--minify-syntax`
331
-
332
- ---
333
-
334
- - `--out-extension`
335
- - n/a
336
- - Not supported
337
-
338
- ---
339
-
340
- - `--outbase`
341
- - `--root`
342
-
343
- ---
344
-
345
- - `--preserve-symlinks`
346
- - n/a
347
- - Not supported
348
-
349
- ---
350
-
351
- - `--public-path`
352
- - `--public-path`
353
-
354
- ---
355
-
356
- - `--pure`
357
- - n/a
358
- - Not supported
359
-
360
- ---
361
-
362
- - `--reserve-props`
363
- - n/a
364
- - Not supported
365
-
366
- ---
367
-
368
- - `--resolve-extensions`
369
- - n/a
370
- - Not supported
371
-
372
- ---
373
-
374
- - `--servedir`
375
- - n/a
376
- - Not applicable
377
-
378
- ---
379
-
380
- - `--source-root`
381
- - n/a
382
- - Not supported
383
-
384
- ---
385
-
386
- - `--sourcefile`
387
- - n/a
388
- - Not supported. Bun does not support `stdin` input yet.
389
-
390
- ---
391
-
392
- - `--sourcemap`
393
- - `--sourcemap`
394
- - No differences
395
-
396
- ---
397
-
398
- - `--sources-content`
399
- - n/a
400
- - Not supported
401
-
402
- ---
403
-
404
- - `--supported`
405
- - n/a
406
- - Not supported
407
-
408
- ---
409
-
410
- - `--tree-shaking`
411
- - n/a
412
- - Always `true`
413
-
414
- ---
415
-
416
- - `--tsconfig`
417
- - `--tsconfig-override`
418
-
419
- ---
420
-
421
- - `--version`
422
- - n/a
423
- - Run `bun --version` to see the version of Bun.
424
-
425
- {% /table %}
426
-
427
- ## JavaScript API
428
-
429
- {% table %}
430
-
431
- - `esbuild.build()`
432
- - `Bun.build()`
433
-
434
- ---
435
-
436
- - `absWorkingDir`
437
- - n/a
438
- - Always set to `process.cwd()`
439
-
440
- ---
441
-
442
- - `alias`
443
- - n/a
444
- - Not supported
445
-
446
- ---
447
-
448
- - `allowOverwrite`
449
- - n/a
450
- - Always `false`
451
-
452
- ---
453
-
454
- - `assetNames`
455
- - `naming.asset`
456
- - Uses same templating syntax as esbuild, but `[ext]` must be included explicitly.
457
-
458
- ```ts
459
- Bun.build({
460
- entrypoints: ["./index.tsx"],
461
- naming: {
462
- asset: "[name].[ext]",
463
- },
464
- });
465
- ```
466
-
467
- ---
468
-
469
- - `banner`
470
- - n/a
471
- - Not supported
472
-
473
- ---
474
-
475
- - `bundle`
476
- - n/a
477
- - Always `true`. Use [`Bun.Transpiler`](https://bun.com/docs/api/transpiler) to transpile without bundling.
478
-
479
- ---
480
-
481
- - `charset`
482
- - n/a
483
- - Not supported
484
-
485
- ---
486
-
487
- - `chunkNames`
488
- - `naming.chunk`
489
- - Uses same templating syntax as esbuild, but `[ext]` must be included explicitly.
490
-
491
- ```ts
492
- Bun.build({
493
- entrypoints: ["./index.tsx"],
494
- naming: {
495
- chunk: "[name].[ext]",
496
- },
497
- });
498
- ```
499
-
500
- ---
501
-
502
- - `color`
503
- - n/a
504
- - Bun returns logs in the `logs` property of the build result.
505
-
506
- ---
507
-
508
- - `conditions`
509
- - n/a
510
- - Not supported. Export conditions priority is determined by `target`.
511
-
512
- ---
513
-
514
- - `define`
515
- - `define`
516
-
517
- ---
518
-
519
- - `drop`
520
- - n/a
521
- - Not supported
522
-
523
- ---
524
-
525
- - `entryNames`
526
- - `naming` or `naming.entry`
527
- - Bun supports a `naming` key that can either be a string or an object. Uses same templating syntax as esbuild, but `[ext]` must be included explicitly.
528
-
529
- ```ts
530
- Bun.build({
531
- entrypoints: ["./index.tsx"],
532
- // when string, this is equivalent to entryNames
533
- naming: "[name].[ext]",
534
-
535
- // granular naming options
536
- naming: {
537
- entry: "[name].[ext]",
538
- asset: "[name].[ext]",
539
- chunk: "[name].[ext]",
540
- },
541
- });
542
- ```
543
-
544
- ---
545
-
546
- - `entryPoints`
547
- - `entrypoints`
548
- - Capitalization difference
549
-
550
- ---
551
-
552
- - `external`
553
- - `external`
554
- - No differences
555
-
556
- ---
557
-
558
- - `footer`
559
- - n/a
560
- - Not supported
561
-
562
- ---
563
-
564
- - `format`
565
- - `format`
566
- - Only supports `"esm"` currently. Support for `"cjs"` and `"iife"` is planned.
567
-
568
- ---
569
-
570
- - `globalName`
571
- - n/a
572
- - Not supported
573
-
574
- ---
575
-
576
- - `ignoreAnnotations`
577
- - n/a
578
- - Not supported
579
-
580
- ---
581
-
582
- - `inject`
583
- - n/a
584
- - Not supported
585
-
586
- ---
587
-
588
- - `jsx`
589
- - `jsx`
590
- - Not supported in JS API, configure in `tsconfig.json`
591
-
592
- ---
593
-
594
- - `jsxDev`
595
- - `jsxDev`
596
- - Not supported in JS API, configure in `tsconfig.json`
597
-
598
- ---
599
-
600
- - `jsxFactory`
601
- - `jsxFactory`
602
- - Not supported in JS API, configure in `tsconfig.json`
603
-
604
- ---
605
-
606
- - `jsxFragment`
607
- - `jsxFragment`
608
- - Not supported in JS API, configure in `tsconfig.json`
609
-
610
- ---
611
-
612
- - `jsxImportSource`
613
- - `jsxImportSource`
614
- - Not supported in JS API, configure in `tsconfig.json`
615
-
616
- ---
617
-
618
- - `jsxSideEffects`
619
- - `jsxSideEffects`
620
- - Controls whether JSX expressions are marked as pure for dead code elimination
621
-
622
- ---
623
-
624
- - `keepNames`
625
- - n/a
626
- - Not supported
627
-
628
- ---
629
-
630
- - `legalComments`
631
- - n/a
632
- - Not supported
633
-
634
- ---
635
-
636
- - `loader`
637
- - `loader`
638
- - Bun supports a different set of built-in loaders than esbuild; see [Bundler > Loaders](https://bun.com/docs/bundler/loaders) for a complete reference. The esbuild loaders `dataurl`, `binary`, `base64`, `copy`, and `empty` are not yet implemented.
639
-
640
- ---
641
-
642
- - `logLevel`
643
- - n/a
644
- - Not supported
645
-
646
- ---
647
-
648
- - `logLimit`
649
- - n/a
650
- - Not supported
651
-
652
- ---
653
-
654
- - `logOverride`
655
- - n/a
656
- - Not supported
657
-
658
- ---
659
-
660
- - `mainFields`
661
- - n/a
662
- - Not supported
663
-
664
- ---
665
-
666
- - `mangleCache`
667
- - n/a
668
- - Not supported
669
-
670
- ---
671
-
672
- - `mangleProps`
673
- - n/a
674
- - Not supported
675
-
676
- ---
677
-
678
- - `mangleQuoted`
679
- - n/a
680
- - Not supported
681
-
682
- ---
683
-
684
- - `metafile`
685
- - n/a
686
- - Not supported
687
-
688
- <!-- - `manifest`
689
- - When `manifest` is `true`, the result of `Bun.build()` will contain a `manifest` property. The manifest is compatible with esbuild's metafile format. -->
690
-
691
- ---
692
-
693
- - `minify`
694
- - `minify`
695
- - In Bun, `minify` can be a boolean or an object.
696
-
697
- ```ts
698
- await Bun.build({
699
- entrypoints: ['./index.tsx'],
700
- // enable all minification
701
- minify: true
702
-
703
- // granular options
704
- minify: {
705
- identifiers: true,
706
- syntax: true,
707
- whitespace: true
708
- }
709
- })
710
- ```
711
-
712
- ---
713
-
714
- - `minifyIdentifiers`
715
- - `minify.identifiers`
716
- - See `minify`
717
-
718
- ---
719
-
720
- - `minifySyntax`
721
- - `minify.syntax`
722
- - See `minify`
723
-
724
- ---
725
-
726
- - `minifyWhitespace`
727
- - `minify.whitespace`
728
- - See `minify`
729
-
730
- ---
731
-
732
- - `nodePaths`
733
- - n/a
734
- - Not supported
735
-
736
- ---
737
-
738
- - `outExtension`
739
- - n/a
740
- - Not supported
741
-
742
- ---
743
-
744
- - `outbase`
745
- - `root`
746
- - Different name
747
-
748
- ---
749
-
750
- - `outdir`
751
- - `outdir`
752
- - No differences
753
-
754
- ---
755
-
756
- - `outfile`
757
- - `outfile`
758
- - No differences
759
-
760
- ---
761
-
762
- - `packages`
763
- - n/a
764
- - Not supported, use `external`
765
-
766
- ---
767
-
768
- - `platform`
769
- - `target`
770
- - Supports `"bun"`, `"node"` and `"browser"` (the default). Does not support `"neutral"`.
771
-
772
- ---
773
-
774
- - `plugins`
775
- - `plugins`
776
- - Bun's plugin API is a subset of esbuild's. Some esbuild plugins will work out of the box with Bun.
777
-
778
- ---
779
-
780
- - `preserveSymlinks`
781
- - n/a
782
- - Not supported
783
-
784
- ---
785
-
786
- - `publicPath`
787
- - `publicPath`
788
- - No differences
789
-
790
- ---
791
-
792
- - `pure`
793
- - n/a
794
- - Not supported
795
-
796
- ---
797
-
798
- - `reserveProps`
799
- - n/a
800
- - Not supported
801
-
802
- ---
803
-
804
- - `resolveExtensions`
805
- - n/a
806
- - Not supported
807
-
808
- ---
809
-
810
- - `sourceRoot`
811
- - n/a
812
- - Not supported
813
-
814
- ---
815
-
816
- - `sourcemap`
817
- - `sourcemap`
818
- - Supports `"inline"`, `"external"`, and `"none"`
819
-
820
- ---
821
-
822
- - `sourcesContent`
823
- - n/a
824
- - Not supported
825
-
826
- ---
827
-
828
- - `splitting`
829
- - `splitting`
830
- - No differences
831
-
832
- ---
833
-
834
- - `stdin`
835
- - n/a
836
- - Not supported
837
-
838
- ---
839
-
840
- - `supported`
841
- - n/a
842
- - Not supported
843
-
844
- ---
845
-
846
- - `target`
847
- - n/a
848
- - No support for syntax downleveling
849
-
850
- ---
851
-
852
- - `treeShaking`
853
- - n/a
854
- - Always `true`
855
-
856
- ---
857
-
858
- - `tsconfig`
859
- - n/a
860
- - Not supported
861
-
862
- ---
863
-
864
- - `write`
865
- - n/a
866
- - Set to `true` if `outdir`/`outfile` is set, otherwise `false`
867
-
868
- ---
869
-
870
- {% /table %}
871
-
872
- ## Plugin API
873
-
874
- Bun's plugin API is designed to be esbuild compatible. Bun doesn't support esbuild's entire plugin API surface, but the core functionality is implemented. Many third-party `esbuild` plugins will work out of the box with Bun.
875
-
876
- {% callout %}
877
- Long term, we aim for feature parity with esbuild's API, so if something doesn't work please file an issue to help us prioritize.
878
-
879
- {% /callout %}
880
-
881
- Plugins in Bun and esbuild are defined with a `builder` object.
882
-
883
- ```ts
884
- import type { BunPlugin } from "bun";
885
-
886
- const myPlugin: BunPlugin = {
887
- name: "my-plugin",
888
- setup(builder) {
889
- // define plugin
890
- },
891
- };
892
- ```
893
-
894
- The `builder` object provides some methods for hooking into parts of the bundling process. Bun implements `onResolve` and `onLoad`; it does not yet implement the esbuild hooks `onStart`, `onEnd`, and `onDispose`, and `resolve` utilities. `initialOptions` is partially implemented, being read-only and only having a subset of esbuild's options; use [`config`](https://bun.com/docs/bundler/plugins) (same thing but with Bun's `BuildConfig` format) instead.
895
-
896
- ```ts
897
- import type { BunPlugin } from "bun";
898
- const myPlugin: BunPlugin = {
899
- name: "my-plugin",
900
- setup(builder) {
901
- builder.onResolve(
902
- {
903
- /* onResolve.options */
904
- },
905
- args => {
906
- return {
907
- /* onResolve.results */
908
- };
909
- },
910
- );
911
- builder.onLoad(
912
- {
913
- /* onLoad.options */
914
- },
915
- args => {
916
- return {
917
- /* onLoad.results */
918
- };
919
- },
920
- );
921
- },
922
- };
923
- ```
924
-
925
- ### `onResolve`
926
-
927
- #### `options`
928
-
929
- {% table %}
930
-
931
- - 🟢
932
- - `filter`
933
-
934
- ---
935
-
936
- - 🟢
937
- - `namespace`
938
-
939
- {% /table %}
940
-
941
- #### `arguments`
942
-
943
- {% table %}
944
-
945
- - 🟢
946
- - `path`
947
-
948
- ---
949
-
950
- - 🟢
951
- - `importer`
952
-
953
- ---
954
-
955
- - 🔴
956
- - `namespace`
957
-
958
- ---
959
-
960
- - 🔴
961
- - `resolveDir`
962
-
963
- ---
964
-
965
- - 🔴
966
- - `kind`
967
-
968
- ---
969
-
970
- - 🔴
971
- - `pluginData`
972
-
973
- {% /table %}
974
-
975
- #### `results`
976
-
977
- {% table %}
978
-
979
- - 🟢
980
- - `namespace`
981
-
982
- ---
983
-
984
- - 🟢
985
- - `path`
986
-
987
- ---
988
-
989
- - 🔴
990
- - `errors`
991
-
992
- ---
993
-
994
- - 🔴
995
- - `external`
996
-
997
- ---
998
-
999
- - 🔴
1000
- - `pluginData`
1001
-
1002
- ---
1003
-
1004
- - 🔴
1005
- - `pluginName`
1006
-
1007
- ---
1008
-
1009
- - 🔴
1010
- - `sideEffects`
1011
-
1012
- ---
1013
-
1014
- - 🔴
1015
- - `suffix`
1016
-
1017
- ---
1018
-
1019
- - 🔴
1020
- - `warnings`
1021
-
1022
- ---
1023
-
1024
- - 🔴
1025
- - `watchDirs`
1026
-
1027
- ---
1028
-
1029
- - 🔴
1030
- - `watchFiles`
1031
-
1032
- {% /table %}
1033
-
1034
- ### `onLoad`
1035
-
1036
- #### `options`
1037
-
1038
- {% table %}
1039
-
1040
- ---
1041
-
1042
- - 🟢
1043
- - `filter`
1044
-
1045
- ---
1046
-
1047
- - 🟢
1048
- - `namespace`
1049
-
1050
- {% /table %}
1051
-
1052
- #### `arguments`
1053
-
1054
- {% table %}
1055
-
1056
- ---
1057
-
1058
- - 🟢
1059
- - `path`
1060
-
1061
- ---
1062
-
1063
- - 🔴
1064
- - `namespace`
1065
-
1066
- ---
1067
-
1068
- - 🔴
1069
- - `suffix`
1070
-
1071
- ---
1072
-
1073
- - 🔴
1074
- - `pluginData`
1075
-
1076
- {% /table %}
1077
-
1078
- #### `results`
1079
-
1080
- {% table %}
1081
-
1082
- ---
1083
-
1084
- - 🟢
1085
- - `contents`
1086
-
1087
- ---
1088
-
1089
- - 🟢
1090
- - `loader`
1091
-
1092
- ---
1093
-
1094
- - 🔴
1095
- - `errors`
1096
-
1097
- ---
1098
-
1099
- - 🔴
1100
- - `pluginData`
1101
-
1102
- ---
1103
-
1104
- - 🔴
1105
- - `pluginName`
1106
-
1107
- ---
1108
-
1109
- - 🔴
1110
- - `resolveDir`
1111
-
1112
- ---
1113
-
1114
- - 🔴
1115
- - `warnings`
1116
-
1117
- ---
1118
-
1119
- - 🔴
1120
- - `watchDirs`
1121
-
1122
- ---
1123
-
1124
- - 🔴
1125
- - `watchFiles`
1126
-
1127
- {% /table %}