bun-types 1.3.2-canary.20251105T140650 → 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 (308) hide show
  1. package/docs/README.md +28 -0
  2. package/package.json +1 -1
  3. package/docs/api/binary-data.md +0 -1038
  4. package/docs/api/cc.md +0 -197
  5. package/docs/api/color.md +0 -262
  6. package/docs/api/console.md +0 -57
  7. package/docs/api/cookie.md +0 -449
  8. package/docs/api/dns.md +0 -110
  9. package/docs/api/fetch.md +0 -463
  10. package/docs/api/ffi.md +0 -557
  11. package/docs/api/file-io.md +0 -366
  12. package/docs/api/file-system-router.md +0 -112
  13. package/docs/api/file.md +0 -19
  14. package/docs/api/glob.md +0 -178
  15. package/docs/api/globals.md +0 -387
  16. package/docs/api/hashing.md +0 -319
  17. package/docs/api/html-rewriter.md +0 -334
  18. package/docs/api/http.md +0 -1408
  19. package/docs/api/import-meta.md +0 -69
  20. package/docs/api/node-api.md +0 -14
  21. package/docs/api/redis.md +0 -597
  22. package/docs/api/s3.md +0 -850
  23. package/docs/api/secrets.md +0 -319
  24. package/docs/api/semver.md +0 -52
  25. package/docs/api/spawn.md +0 -582
  26. package/docs/api/sql.md +0 -1374
  27. package/docs/api/sqlite.md +0 -694
  28. package/docs/api/streams.md +0 -230
  29. package/docs/api/tcp.md +0 -221
  30. package/docs/api/transpiler.md +0 -276
  31. package/docs/api/udp.md +0 -123
  32. package/docs/api/utils.md +0 -891
  33. package/docs/api/websockets.md +0 -573
  34. package/docs/api/workers.md +0 -322
  35. package/docs/api/yaml.md +0 -668
  36. package/docs/benchmarks.md +0 -120
  37. package/docs/bun-flavored-toml.md +0 -42
  38. package/docs/bundler/css.md +0 -1028
  39. package/docs/bundler/css_modules.md +0 -145
  40. package/docs/bundler/executables.md +0 -626
  41. package/docs/bundler/fullstack.md +0 -418
  42. package/docs/bundler/hmr.md +0 -234
  43. package/docs/bundler/html.md +0 -349
  44. package/docs/bundler/index.md +0 -1735
  45. package/docs/bundler/intro.md +0 -75
  46. package/docs/bundler/loaders.md +0 -410
  47. package/docs/bundler/macros.md +0 -329
  48. package/docs/bundler/plugins.md +0 -449
  49. package/docs/bundler/vs-esbuild.md +0 -1127
  50. package/docs/cli/add.md +0 -173
  51. package/docs/cli/bun-completions.md +0 -3
  52. package/docs/cli/bun-create.md +0 -338
  53. package/docs/cli/bun-install.md +0 -349
  54. package/docs/cli/bun-upgrade.md +0 -39
  55. package/docs/cli/bunx.md +0 -89
  56. package/docs/cli/filter.md +0 -90
  57. package/docs/cli/info.md +0 -65
  58. package/docs/cli/init.md +0 -85
  59. package/docs/cli/install.md +0 -344
  60. package/docs/cli/link.md +0 -40
  61. package/docs/cli/outdated.md +0 -90
  62. package/docs/cli/patch-commit.md +0 -11
  63. package/docs/cli/pm.md +0 -285
  64. package/docs/cli/publish.md +0 -120
  65. package/docs/cli/remove.md +0 -7
  66. package/docs/cli/run.md +0 -261
  67. package/docs/cli/test.md +0 -397
  68. package/docs/cli/unlink.md +0 -9
  69. package/docs/cli/update.md +0 -129
  70. package/docs/cli/why.md +0 -67
  71. package/docs/contributing/upgrading-webkit.md +0 -57
  72. package/docs/ecosystem/elysia.md +0 -24
  73. package/docs/ecosystem/express.md +0 -37
  74. package/docs/ecosystem/hono.md +0 -18
  75. package/docs/ecosystem/react.md +0 -65
  76. package/docs/ecosystem/stric.md +0 -38
  77. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  78. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  79. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  80. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  81. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  82. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  83. package/docs/guides/binary/blob-to-dataview.md +0 -14
  84. package/docs/guides/binary/blob-to-stream.md +0 -14
  85. package/docs/guides/binary/blob-to-string.md +0 -15
  86. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  87. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  88. package/docs/guides/binary/buffer-to-blob.md +0 -14
  89. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  90. package/docs/guides/binary/buffer-to-string.md +0 -25
  91. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  92. package/docs/guides/binary/dataview-to-string.md +0 -15
  93. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  94. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  95. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  96. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  97. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  98. package/docs/guides/binary/typedarray-to-string.md +0 -16
  99. package/docs/guides/deployment/railway.md +0 -157
  100. package/docs/guides/ecosystem/astro.md +0 -72
  101. package/docs/guides/ecosystem/discordjs.md +0 -77
  102. package/docs/guides/ecosystem/docker.md +0 -140
  103. package/docs/guides/ecosystem/drizzle.md +0 -185
  104. package/docs/guides/ecosystem/edgedb.md +0 -228
  105. package/docs/guides/ecosystem/elysia.md +0 -31
  106. package/docs/guides/ecosystem/express.md +0 -40
  107. package/docs/guides/ecosystem/hono.md +0 -39
  108. package/docs/guides/ecosystem/mongoose.md +0 -87
  109. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  110. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  111. package/docs/guides/ecosystem/nextjs.md +0 -49
  112. package/docs/guides/ecosystem/nuxt.md +0 -56
  113. package/docs/guides/ecosystem/pm2.md +0 -57
  114. package/docs/guides/ecosystem/prisma.md +0 -141
  115. package/docs/guides/ecosystem/qwik.md +0 -107
  116. package/docs/guides/ecosystem/react.md +0 -50
  117. package/docs/guides/ecosystem/remix.md +0 -78
  118. package/docs/guides/ecosystem/render.md +0 -79
  119. package/docs/guides/ecosystem/sentry.md +0 -52
  120. package/docs/guides/ecosystem/solidstart.md +0 -58
  121. package/docs/guides/ecosystem/ssr-react.md +0 -51
  122. package/docs/guides/ecosystem/stric.md +0 -55
  123. package/docs/guides/ecosystem/sveltekit.md +0 -125
  124. package/docs/guides/ecosystem/systemd.md +0 -113
  125. package/docs/guides/ecosystem/vite.md +0 -71
  126. package/docs/guides/html-rewriter/extract-links.md +0 -68
  127. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  128. package/docs/guides/http/cluster.md +0 -66
  129. package/docs/guides/http/fetch-unix.md +0 -33
  130. package/docs/guides/http/fetch.md +0 -24
  131. package/docs/guides/http/file-uploads.md +0 -94
  132. package/docs/guides/http/hot.md +0 -26
  133. package/docs/guides/http/proxy.md +0 -24
  134. package/docs/guides/http/server.md +0 -46
  135. package/docs/guides/http/simple.md +0 -18
  136. package/docs/guides/http/stream-file.md +0 -48
  137. package/docs/guides/http/stream-iterator.md +0 -47
  138. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  139. package/docs/guides/http/tls.md +0 -30
  140. package/docs/guides/install/add-dev.md +0 -26
  141. package/docs/guides/install/add-git.md +0 -36
  142. package/docs/guides/install/add-optional.md +0 -25
  143. package/docs/guides/install/add-peer.md +0 -43
  144. package/docs/guides/install/add-tarball.md +0 -33
  145. package/docs/guides/install/add.md +0 -42
  146. package/docs/guides/install/azure-artifacts.md +0 -73
  147. package/docs/guides/install/cicd.md +0 -41
  148. package/docs/guides/install/custom-registry.md +0 -30
  149. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  150. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  151. package/docs/guides/install/jfrog-artifactory.md +0 -28
  152. package/docs/guides/install/npm-alias.md +0 -23
  153. package/docs/guides/install/registry-scope.md +0 -38
  154. package/docs/guides/install/trusted.md +0 -46
  155. package/docs/guides/install/workspaces.md +0 -70
  156. package/docs/guides/install/yarnlock.md +0 -44
  157. package/docs/guides/process/argv.md +0 -58
  158. package/docs/guides/process/ctrl-c.md +0 -16
  159. package/docs/guides/process/ipc.md +0 -66
  160. package/docs/guides/process/nanoseconds.md +0 -13
  161. package/docs/guides/process/os-signals.md +0 -39
  162. package/docs/guides/process/spawn-stderr.md +0 -31
  163. package/docs/guides/process/spawn-stdout.md +0 -26
  164. package/docs/guides/process/spawn.md +0 -41
  165. package/docs/guides/process/stdin.md +0 -54
  166. package/docs/guides/read-file/arraybuffer.md +0 -28
  167. package/docs/guides/read-file/buffer.md +0 -19
  168. package/docs/guides/read-file/exists.md +0 -16
  169. package/docs/guides/read-file/json.md +0 -17
  170. package/docs/guides/read-file/mime.md +0 -20
  171. package/docs/guides/read-file/stream.md +0 -26
  172. package/docs/guides/read-file/string.md +0 -22
  173. package/docs/guides/read-file/uint8array.md +0 -21
  174. package/docs/guides/read-file/watch.md +0 -68
  175. package/docs/guides/runtime/build-time-constants.md +0 -293
  176. package/docs/guides/runtime/cicd.md +0 -43
  177. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  178. package/docs/guides/runtime/define-constant.md +0 -145
  179. package/docs/guides/runtime/delete-directory.md +0 -37
  180. package/docs/guides/runtime/delete-file.md +0 -19
  181. package/docs/guides/runtime/heap-snapshot.md +0 -26
  182. package/docs/guides/runtime/import-html.md +0 -15
  183. package/docs/guides/runtime/import-json.md +0 -44
  184. package/docs/guides/runtime/import-toml.md +0 -30
  185. package/docs/guides/runtime/import-yaml.md +0 -102
  186. package/docs/guides/runtime/read-env.md +0 -32
  187. package/docs/guides/runtime/set-env.md +0 -47
  188. package/docs/guides/runtime/shell.md +0 -40
  189. package/docs/guides/runtime/timezone.md +0 -35
  190. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  191. package/docs/guides/runtime/typescript.md +0 -49
  192. package/docs/guides/runtime/vscode-debugger.md +0 -47
  193. package/docs/guides/runtime/web-debugger.md +0 -82
  194. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  195. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  196. package/docs/guides/streams/node-readable-to-json.md +0 -12
  197. package/docs/guides/streams/node-readable-to-string.md +0 -12
  198. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  199. package/docs/guides/streams/to-array.md +0 -14
  200. package/docs/guides/streams/to-arraybuffer.md +0 -14
  201. package/docs/guides/streams/to-blob.md +0 -14
  202. package/docs/guides/streams/to-buffer.md +0 -15
  203. package/docs/guides/streams/to-json.md +0 -14
  204. package/docs/guides/streams/to-string.md +0 -14
  205. package/docs/guides/streams/to-typedarray.md +0 -22
  206. package/docs/guides/test/bail.md +0 -22
  207. package/docs/guides/test/coverage-threshold.md +0 -60
  208. package/docs/guides/test/coverage.md +0 -44
  209. package/docs/guides/test/happy-dom.md +0 -68
  210. package/docs/guides/test/migrate-from-jest.md +0 -143
  211. package/docs/guides/test/mock-clock.md +0 -48
  212. package/docs/guides/test/mock-functions.md +0 -68
  213. package/docs/guides/test/rerun-each.md +0 -14
  214. package/docs/guides/test/run-tests.md +0 -111
  215. package/docs/guides/test/skip-tests.md +0 -39
  216. package/docs/guides/test/snapshot.md +0 -95
  217. package/docs/guides/test/spy-on.md +0 -46
  218. package/docs/guides/test/svelte-test.md +0 -120
  219. package/docs/guides/test/testing-library.md +0 -92
  220. package/docs/guides/test/timeout.md +0 -15
  221. package/docs/guides/test/todo-tests.md +0 -67
  222. package/docs/guides/test/update-snapshots.md +0 -46
  223. package/docs/guides/test/watch-mode.md +0 -19
  224. package/docs/guides/util/base64.md +0 -15
  225. package/docs/guides/util/deep-equals.md +0 -39
  226. package/docs/guides/util/deflate.md +0 -18
  227. package/docs/guides/util/detect-bun.md +0 -23
  228. package/docs/guides/util/entrypoint.md +0 -17
  229. package/docs/guides/util/escape-html.md +0 -22
  230. package/docs/guides/util/file-url-to-path.md +0 -14
  231. package/docs/guides/util/gzip.md +0 -18
  232. package/docs/guides/util/hash-a-password.md +0 -54
  233. package/docs/guides/util/import-meta-dir.md +0 -13
  234. package/docs/guides/util/import-meta-file.md +0 -13
  235. package/docs/guides/util/import-meta-path.md +0 -13
  236. package/docs/guides/util/javascript-uuid.md +0 -23
  237. package/docs/guides/util/main.md +0 -32
  238. package/docs/guides/util/path-to-file-url.md +0 -14
  239. package/docs/guides/util/sleep.md +0 -22
  240. package/docs/guides/util/version.md +0 -21
  241. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  242. package/docs/guides/websocket/compression.md +0 -31
  243. package/docs/guides/websocket/context.md +0 -77
  244. package/docs/guides/websocket/pubsub.md +0 -41
  245. package/docs/guides/websocket/simple.md +0 -33
  246. package/docs/guides/write-file/append.md +0 -52
  247. package/docs/guides/write-file/basic.md +0 -44
  248. package/docs/guides/write-file/blob.md +0 -28
  249. package/docs/guides/write-file/cat.md +0 -17
  250. package/docs/guides/write-file/file-cp.md +0 -16
  251. package/docs/guides/write-file/filesink.md +0 -52
  252. package/docs/guides/write-file/response.md +0 -17
  253. package/docs/guides/write-file/stdout.md +0 -21
  254. package/docs/guides/write-file/stream.md +0 -17
  255. package/docs/guides/write-file/unlink.md +0 -16
  256. package/docs/index.md +0 -77
  257. package/docs/install/audit.md +0 -57
  258. package/docs/install/cache.md +0 -59
  259. package/docs/install/catalogs.md +0 -298
  260. package/docs/install/index.md +0 -248
  261. package/docs/install/isolated.md +0 -197
  262. package/docs/install/lifecycle.md +0 -46
  263. package/docs/install/lockfile.md +0 -58
  264. package/docs/install/npmrc.md +0 -105
  265. package/docs/install/overrides.md +0 -73
  266. package/docs/install/patch.md +0 -59
  267. package/docs/install/registries.md +0 -30
  268. package/docs/install/security-scanner-api.md +0 -81
  269. package/docs/install/workspaces.md +0 -114
  270. package/docs/installation.md +0 -327
  271. package/docs/project/asan.md +0 -124
  272. package/docs/project/benchmarking.md +0 -203
  273. package/docs/project/bindgen.md +0 -225
  274. package/docs/project/building-windows.md +0 -162
  275. package/docs/project/contributing.md +0 -347
  276. package/docs/project/internals/build-process-for-ci.md +0 -75
  277. package/docs/project/licensing.md +0 -73
  278. package/docs/project/roadmap.md +0 -87
  279. package/docs/quickstart.md +0 -157
  280. package/docs/runtime/autoimport.md +0 -94
  281. package/docs/runtime/bun-apis.md +0 -207
  282. package/docs/runtime/bunfig.md +0 -772
  283. package/docs/runtime/debugger.md +0 -325
  284. package/docs/runtime/env.md +0 -253
  285. package/docs/runtime/hot.md +0 -145
  286. package/docs/runtime/index.md +0 -312
  287. package/docs/runtime/jsx.md +0 -385
  288. package/docs/runtime/loaders.md +0 -130
  289. package/docs/runtime/modules.md +0 -320
  290. package/docs/runtime/nodejs-apis.md +0 -463
  291. package/docs/runtime/plugins.md +0 -561
  292. package/docs/runtime/shell.md +0 -605
  293. package/docs/runtime/typescript.md +0 -139
  294. package/docs/runtime/web-apis.md +0 -128
  295. package/docs/test/configuration.md +0 -154
  296. package/docs/test/coverage.md +0 -142
  297. package/docs/test/discovery.md +0 -85
  298. package/docs/test/dom.md +0 -75
  299. package/docs/test/examples/concurrent-test-glob.md +0 -132
  300. package/docs/test/hot.md +0 -15
  301. package/docs/test/lifecycle.md +0 -81
  302. package/docs/test/mocks.md +0 -313
  303. package/docs/test/reporters.md +0 -117
  304. package/docs/test/runtime-behavior.md +0 -95
  305. package/docs/test/snapshots.md +0 -68
  306. package/docs/test/time.md +0 -126
  307. package/docs/test/writing.md +0 -825
  308. 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 %}