bun-types 1.3.2-canary.20251105T140650 → 1.3.2

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