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,6 +1,8 @@
1
1
  ---
2
- name: Deploy a Bun application on Railway
2
+ title: Deploy a Bun application on Railway
3
3
  description: Deploy Bun applications to Railway with this step-by-step guide covering CLI and dashboard methods, optional PostgreSQL setup, and automatic SSL configuration.
4
+ sidebarTitle: Deploy on Railway
5
+ mode: center
4
6
  ---
5
7
 
6
8
  Railway is an infrastructure platform where you can provision infrastructure, develop with that infrastructure locally, and then deploy to the cloud. It enables instant deployments from GitHub with zero configuration, automatic SSL, and built-in database provisioning.
@@ -9,14 +11,13 @@ This guide walks through deploying a Bun application with a PostgreSQL database
9
11
 
10
12
  You can either follow this guide step-by-step or simply deploy the pre-configured template with one click:
11
13
 
12
- {% raw %}
13
-
14
- <a href="https://railway.com/deploy/bun-react-postgres?referralCode=Bun&utm_medium=integration&utm_source=template&utm_campaign=bun" target="_blank">
14
+ <a
15
+ href="https://railway.com/deploy/bun-react-postgres?referralCode=Bun&utm_medium=integration&utm_source=template&utm_campaign=bun"
16
+ target="_blank"
17
+ >
15
18
  <img src="https://railway.com/button.svg" alt="Deploy on Railway" />
16
19
  </a>
17
20
 
18
- {% /raw %}
19
-
20
21
  ---
21
22
 
22
23
  **Prerequisites**:
@@ -30,88 +31,78 @@ You can either follow this guide step-by-step or simply deploy the pre-configure
30
31
 
31
32
  ## Method 1: Deploy via CLI
32
33
 
33
- ---
34
-
35
- #### Step 1
36
-
34
+ <Steps>
35
+ <Step title="Step 1">
37
36
  Ensure sure you have the Railway CLI installed.
38
37
 
39
- ```bash
38
+ ```bash terminal icon="terminal"
40
39
  bun install -g @railway/cli
41
40
  ```
42
41
 
43
- ---
44
-
45
- #### Step 2
46
-
42
+ </Step>
43
+ <Step title="Step 2">
47
44
  Log into your Railway account.
48
45
 
49
- ```bash
46
+ ```bash terminal icon="terminal"
50
47
  railway login
51
48
  ```
52
49
 
53
- ---
54
-
55
- #### Step 3
56
-
50
+ </Step>
51
+ <Step title="Step 3">
57
52
  After successfully authenticating, initialize a new project.
58
53
 
59
- ```bash
60
- # Initialize project
61
- bun-react-postgres$ railway init
54
+ ```bash terminal icon="terminal"
55
+ railway init
62
56
  ```
63
57
 
64
- ---
65
-
66
- #### Step 4
67
-
58
+ </Step>
59
+ <Step title="Step 4">
68
60
  After initializing the project, add a new database and service.
69
61
 
70
- > **Note:** Step 4 is only necessary if your application uses a database. If you don't need PostgreSQL, skip to Step 5.
62
+ <Note>Step 4 is only necessary if your application uses a database. If you don't need PostgreSQL, skip to Step 5.</Note>
71
63
 
72
- ```bash
64
+ ```bash terminal icon="terminal"
73
65
  # Add PostgreSQL database. Make sure to add this first!
74
- bun-react-postgres$ railway add --database postgres
66
+ railway add --database postgres
75
67
 
76
68
  # Add your application service.
77
- bun-react-postgres$ railway add --service bun-react-db --variables DATABASE_URL=\${{Postgres.DATABASE_URL}}
69
+ railway add --service bun-react-db --variables DATABASE_URL=\${{Postgres.DATABASE_URL}}
78
70
  ```
79
71
 
80
- ---
81
-
82
- #### Step 5
83
-
72
+ </Step>
73
+ <Step title="Step 5">
84
74
  After the services have been created and connected, deploy the application to Railway. By default, services are only accessible within Railway's private network. To make your app publicly accessible, you need to generate a public domain.
85
75
 
86
- ```bash
76
+ ```bash terminal icon="terminal"
87
77
  # Deploy your application
88
- bun-nextjs-starter$ railway up
78
+ railway up
89
79
 
90
80
  # Generate public domain
91
- bun-nextjs-starter$ railway domain
81
+ railway domain
92
82
  ```
93
83
 
94
- ---
84
+ </Step>
85
+ </Steps>
95
86
 
96
- ## Method 2: Deploy via Dashboard
87
+ Your app is now live! Railway auto-deploys on every GitHub push.
97
88
 
98
89
  ---
99
90
 
100
- #### Step 1
91
+ ## Method 2: Deploy via Dashboard
101
92
 
93
+ <Steps>
94
+ <Step title="Step 1">
102
95
  Create a new project
103
96
 
104
97
  1. Go to [Railway Dashboard](http://railway.com/dashboard?utm_medium=integration&utm_source=docs&utm_campaign=bun)
105
98
  2. Click **"+ New"** → **"GitHub repo"**
106
99
  3. Choose your repository
107
100
 
108
- ---
109
-
110
- #### Step 2
111
-
101
+ </Step>
102
+ <Step title="Step 2">
112
103
  Add a PostgreSQL database, and connect this database to the service
113
104
 
114
- > **Note:** Step 2 is only necessary if your application uses a database. If you don't need PostgreSQL, skip to Step 3.
105
+ <Note>Step 2 is only necessary if your application uses a database. If you don't need PostgreSQL, skip to Step 3.</Note>
115
106
 
116
107
  1. Click **"+ New"** → **"Database"** → **"Add PostgreSQL"**
117
108
  2. After the database has been created, select your service (not the database)
@@ -119,17 +110,16 @@ Add a PostgreSQL database, and connect this database to the service
119
110
  4. Click **"+ New Variable"** → **"Add Reference"**
120
111
  5. Select `DATABASE_URL` from postgres
121
112
 
122
- ---
123
-
124
- #### Step 3
125
-
113
+ </Step>
114
+ <Step title="Step 3">
126
115
  Generate a public domain
127
116
 
128
117
  1. Select your service
129
118
  2. Go to **"Settings"** tab
130
119
  3. Under **"Networking"**, click **"Generate Domain"**
131
120
 
132
- ---
121
+ </Step>
122
+ </Steps>
133
123
 
134
124
  Your app is now live! Railway auto-deploys on every GitHub push.
135
125
 
@@ -137,15 +127,13 @@ Your app is now live! Railway auto-deploys on every GitHub push.
137
127
 
138
128
  ## Configuration (Optional)
139
129
 
140
- ---
141
-
142
130
  By default, Railway uses [Nixpacks](https://docs.railway.com/guides/build-configuration#nixpacks-options) to automatically detect and build your Bun application with zero configuration.
143
131
 
144
132
  However, using the [Railpack](https://docs.railway.com/guides/build-configuration#railpack) application builder provides better Bun support, and will always support the latest version of Bun. The pre-configured templates use Railpack by default.
145
133
 
146
134
  To enable Railpack in a custom project, add the following to your `railway.json`:
147
135
 
148
- ```json
136
+ ```json railway.json icon="file-json"
149
137
  {
150
138
  "$schema": "https://railway.com/railway.schema.json",
151
139
  "build": {
@@ -0,0 +1,82 @@
1
+ ---
2
+ title: Deploy a Bun application on Render
3
+ sidebarTitle: Deploy on Render
4
+ mode: center
5
+ ---
6
+
7
+ [Render](https://render.com/) is a cloud platform that lets you flexibly build, deploy, and scale your apps.
8
+
9
+ It offers features like auto deploys from GitHub, a global CDN, private networks, automatic HTTPS setup, and managed PostgreSQL and Redis.
10
+
11
+ Render supports Bun natively. You can deploy Bun apps as web services, background workers, cron jobs, and more.
12
+
13
+ ---
14
+
15
+ As an example, let's deploy a simple Express HTTP server to Render.
16
+
17
+ <Steps>
18
+ <Step title="Step 1">
19
+ Create a new GitHub repo named `myapp`. Git clone it locally.
20
+
21
+ ```sh
22
+ git clone git@github.com:my-github-username/myapp.git
23
+ cd myapp
24
+ ```
25
+ </Step>
26
+ <Step title="Step 2">
27
+ Add the Express library.
28
+
29
+ ```sh
30
+ bun add express
31
+ ```
32
+
33
+ </Step>
34
+
35
+ <Step title="Step 3">
36
+ Define a simple server with Express:
37
+
38
+ ```ts app.ts icon="/icons/typescript.svg"
39
+ import express from "express";
40
+
41
+ const app = express();
42
+ const port = process.env.PORT || 3001;
43
+
44
+ app.get("/", (req, res) => {
45
+ res.send("Hello World!");
46
+ });
47
+
48
+ app.listen(port, () => {
49
+ console.log(`Listening on port ${port}...`);
50
+ });
51
+ ```
52
+ </Step>
53
+ <Step title="Step 4">
54
+
55
+ Commit your changes and push to GitHub.
56
+
57
+ ```sh terminal icon="terminal"
58
+ git add app.ts bun.lock package.json
59
+ git commit -m "Create simple Express app"
60
+ git push origin main
61
+ ```
62
+ </Step>
63
+ <Step title="Step 5">
64
+ In your [Render Dashboard](https://dashboard.render.com/), click `New` > `Web Service` and connect your `myapp` repo.
65
+
66
+ </Step>
67
+ <Step title="Step 6">
68
+ In the Render UI, provide the following values during web service creation:
69
+
70
+ | | |
71
+ | ----------------- | ------------- |
72
+ | **Runtime** | `Node` |
73
+ | **Build Command** | `bun install` |
74
+ | **Start Command** | `bun app.ts` |
75
+
76
+ </Step>
77
+
78
+ </Steps>
79
+
80
+ That's it! Your web service will be live at its assigned `onrender.com` URL as soon as the build finishes.
81
+
82
+ You can view the [deploy logs](https://docs.render.com/logging#logs-for-an-individual-deploy-or-job) for details. Refer to [Render's documentation](https://docs.render.com/deploys) for a complete overview of deploying on Render.
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: Deploy a Bun application on Vercel
3
+ sidebarTitle: Deploy on Vercel
4
+ mode: center
5
+ ---
6
+
7
+ import { ProductCard } from "/snippets/product-card.mdx";
8
+
9
+ [Vercel](https://vercel.com/) is a cloud platform that lets you build, deploy, and scale your apps.
10
+
11
+ <Warning>
12
+ The Bun runtime is in Beta; certain features (e.g., automatic source maps, byte-code caching, metrics on
13
+ `node:http/https`) are not yet supported.
14
+ </Warning>
15
+
16
+ <Note>
17
+ `Bun.serve` is currently not supported on Vercel Functions. Use Bun with frameworks supported by Vercel, like Next.js,
18
+ Express, Hono, or Nitro.
19
+ </Note>
20
+
21
+ ---
22
+
23
+ <Steps>
24
+ <Step title="Configure Bun in vercel.json">
25
+ To enable the Bun runtime for your Functions, add a `bunVersion` field in your `vercel.json` file:
26
+
27
+ ```json vercel.json icon="file-json"
28
+ {
29
+ "bunVersion": "1.x" // [!code ++]
30
+ }
31
+ ```
32
+
33
+ Vercel automatically detects this configuration and runs your application on Bun. The value has to be `"1.x"`, Vercel handles the minor version internally.
34
+
35
+ For best results, match your local Bun version with the version used by Vercel. **Currently, Bun version `1.2.23` is supported**.
36
+ </Step>
37
+
38
+ <Step title="Next.js configuration">
39
+ If you’re deploying a **Next.js** project (including ISR), update your `package.json` scripts to use the Bun runtime:
40
+
41
+ ```json package.json icon="file-json"
42
+ {
43
+ "scripts": {
44
+ "dev": "bun --bun next dev", // [!code ++]
45
+ "build": "bun --bun next build" // [!code ++]
46
+ }
47
+ }
48
+ ```
49
+
50
+ <Note>
51
+ The `--bun` flag runs the Next.js CLI under Bun. Bundling (via Turbopack or Webpack) remains unchanged, but all commands execute within the Bun runtime.
52
+ </Note>
53
+
54
+ This ensures both local development and builds use Bun.
55
+ </Step>
56
+
57
+ <Step title="Deploy your app">
58
+ Connect your repository to Vercel, or deploy from the CLI:
59
+
60
+ ```bash terminal icon="terminal"
61
+ # Using bunx (no global install)
62
+ bunx vercel login
63
+ bunx vercel deploy
64
+ ```
65
+
66
+ Or install the Vercel CLI globally:
67
+
68
+ ```bash terminal icon="terminal"
69
+ bun i -g vercel
70
+ vercel login
71
+ vercel deploy
72
+ ```
73
+
74
+ [Learn more in the Vercel Deploy CLI documentation →](https://vercel.com/docs/cli/deploy)
75
+ </Step>
76
+
77
+ <Step title="Verify the runtime">
78
+ To confirm your deployment uses Bun, log the Bun version:
79
+
80
+ ```ts index.ts icon="/icons/typescript.svg"
81
+ console.log("runtime", process.versions.bun);
82
+ ```
83
+ ```txt
84
+ runtime 1.2.23
85
+ ```
86
+
87
+ [See the Vercel Bun Runtime documentation for feature support →](https://vercel.com/docs/functions/runtimes/bun#feature-support)
88
+ </Step>
89
+
90
+ </Steps>
91
+
92
+ ---
93
+
94
+ - [Fluid compute](https://vercel.com/docs/fluid-compute): Both Bun and Node.js runtimes run on Fluid compute and support the same core Vercel Functions features.
95
+ - [Middleware](https://vercel.com/docs/routing-middleware): To run Routing Middleware with Bun, set the runtime to `nodejs`:
96
+
97
+ ```ts middleware.ts icon="/icons/typescript.svg"
98
+ export const config = { runtime: "nodejs" }; // [!code ++]
99
+ ```
@@ -1,11 +1,16 @@
1
1
  ---
2
- name: Build an app with Astro and Bun
2
+ title: Build an app with Astro and Bun
3
+ sidebarTitle: "Astro with Bun"
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Initialize a fresh Astro app with `bun create astro`. The `create-astro` package detects when you are using `bunx` and will automatically install dependencies using `bun`.
6
8
 
7
- ```sh
8
- $ bun create astro
9
+ ```sh terminal icon="terminal"
10
+ bun create astro
11
+ ```
12
+
13
+ ```txt
9
14
  ╭─────╮ Houston:
10
15
  │ ◠ ◡ ◠ We're glad to have you on board.
11
16
  ╰─────╯
@@ -53,8 +58,11 @@ Start the dev server with `bunx`.
53
58
 
54
59
  By default, Bun will run the dev server with Node.js. To use the Bun runtime instead, use the `--bun` flag.
55
60
 
56
- ```sh
57
- $ bunx --bun astro dev
61
+ ```sh terminal icon="terminal"
62
+ bunx --bun astro dev
63
+ ```
64
+
65
+ ```txt
58
66
  🚀 astro v3.1.4 started in 200ms
59
67
 
60
68
  ┃ Local http://localhost:4321/
@@ -65,7 +73,9 @@ $ bunx --bun astro dev
65
73
 
66
74
  Open [http://localhost:4321](http://localhost:4321) with your browser to see the result. Astro will hot-reload your app as you edit your source files.
67
75
 
68
- {% image src="https://i.imgur.com/Dswiu6w.png" caption="An Astro v3 starter app running on Bun" %}
76
+ <Frame>
77
+ <img src="https://i.imgur.com/Dswiu6w.png" caption="An Astro v3 starter app running on Bun" />
78
+ </Frame>
69
79
 
70
80
  ---
71
81
 
@@ -1,21 +1,23 @@
1
1
  ---
2
- name: Create a Discord bot
2
+ title: Create a Discord bot
3
+ sidebarTitle: "Discord.js with Bun"
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Discord.js works out of the box with Bun. Let's write a simple bot. First create a directory and initialize it with `bun init`.
6
8
 
7
- ```sh
8
- $ mkdir my-bot
9
- $ cd my-bot
10
- $ bun init
9
+ ```sh terminal icon="terminal"
10
+ mkdir my-bot
11
+ cd my-bot
12
+ bun init
11
13
  ```
12
14
 
13
15
  ---
14
16
 
15
17
  Now install Discord.js.
16
18
 
17
- ```sh
18
- $ bun add discord.js
19
+ ```sh terminal icon="terminal"
20
+ bun add discord.js
19
21
  ```
20
22
 
21
23
  ---
@@ -26,11 +28,9 @@ Before we go further, we need to go to the [Discord developer portal](https://di
26
28
 
27
29
  Once complete, you'll be presented with your bot's _private key_. Let's add this to a file called `.env.local`. Bun automatically reads this file and loads it into `process.env`.
28
30
 
29
- {% callout %}
30
- This is an example token that has already been invalidated.
31
- {% /callout %}
31
+ <Note>This is an example token that has already been invalidated.</Note>
32
32
 
33
- ```txt#.env.local
33
+ ```txt .env.local icon="settings"
34
34
  DISCORD_TOKEN=NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I
35
35
  ```
36
36
 
@@ -38,7 +38,7 @@ DISCORD_TOKEN=NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I
38
38
 
39
39
  Be sure to add `.env.local` to your `.gitignore`! It is dangerous to check your bot's private key into version control.
40
40
 
41
- ```txt#.gitignore
41
+ ```txt .gitignore icon="file-code"
42
42
  node_modules
43
43
  .env.local
44
44
  ```
@@ -47,15 +47,15 @@ node_modules
47
47
 
48
48
  Now let's actually write our bot in a new file called `bot.ts`.
49
49
 
50
- ```ts#bot.ts
50
+ ```ts bot.ts icon="/icons/typescript.svg"
51
51
  // import discord.js
52
- import {Client, Events, GatewayIntentBits} from 'discord.js';
52
+ import { Client, Events, GatewayIntentBits } from "discord.js";
53
53
 
54
54
  // create a new Client instance
55
- const client = new Client({intents: [GatewayIntentBits.Guilds]});
55
+ const client = new Client({ intents: [GatewayIntentBits.Guilds] });
56
56
 
57
57
  // listen for the client to be ready
58
- client.once(Events.ClientReady, (c) => {
58
+ client.once(Events.ClientReady, c => {
59
59
  console.log(`Ready! Logged in as ${c.user.tag}`);
60
60
  });
61
61
 
@@ -67,8 +67,11 @@ client.login(process.env.DISCORD_TOKEN);
67
67
 
68
68
  Now we can run our bot with `bun run`. It may take a several seconds for the client to initialize the first time you run the file.
69
69
 
70
- ```sh
71
- $ bun run bot.ts
70
+ ```sh terminal icon="terminal"
71
+ bun run bot.ts
72
+ ```
73
+
74
+ ```txt
72
75
  Ready! Logged in as my-bot#1234
73
76
  ```
74
77
 
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Containerize a Bun application with Docker
2
+ title: Containerize a Bun application with Docker
3
+ sidebarTitle: Docker with Bun
4
+ mode: center
3
5
  ---
4
6
 
5
- {% callout %}
6
- This guide assumes you already have [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed.
7
- {% /callout %}
7
+ <Note>
8
+ This guide assumes you already have [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed.
9
+ </Note>
8
10
 
9
11
  [Docker](https://www.docker.com) is a platform for packaging and running an application as a lightweight, portable _container_ that encapsulates all the necessary dependencies.
10
12
 
@@ -12,7 +14,7 @@ This guide assumes you already have [Docker Desktop](https://www.docker.com/prod
12
14
 
13
15
  To _containerize_ our application, we define a `Dockerfile`. This file contains a list of instructions to initialize the container, copy our local project files into it, install dependencies, and starts the application.
14
16
 
15
- ```docker#Dockerfile
17
+ ```docker Dockerfile icon="docker"
16
18
  # use the official Bun image
17
19
  # see all versions at https://hub.docker.com/r/oven/bun/tags
18
20
  FROM oven/bun:1 AS base
@@ -57,7 +59,7 @@ ENTRYPOINT [ "bun", "run", "index.ts" ]
57
59
 
58
60
  Now that you have your docker image, let's look at `.dockerignore` which has the same syntax as `.gitignore`, here you need to specify the files/directories that must not go in any stage of the docker build. An example for a ignore file is
59
61
 
60
- ```txt#.dockerignore
62
+ ```txt .dockerignore icon="docker"
61
63
  node_modules
62
64
  Dockerfile*
63
65
  docker-compose*
@@ -81,8 +83,11 @@ We'll now use `docker build` to convert this `Dockerfile` into a _Docker image_,
81
83
 
82
84
  The `-t` flag lets us specify a name for the image, and `--pull` tells Docker to automatically download the latest version of the base image (`oven/bun`). The initial build will take longer, as Docker will download all the base images and dependencies.
83
85
 
84
- ```bash
85
- $ docker build --pull -t bun-hello-world .
86
+ ```bash terminal icon="terminal"
87
+ docker build --pull -t bun-hello-world .
88
+ ```
89
+
90
+ ```txt
86
91
  [+] Building 0.9s (21/21) FINISHED
87
92
  => [internal] load build definition from Dockerfile 0.0s
88
93
  => => transferring dockerfile: 37B 0.0s
@@ -108,8 +113,11 @@ We'll use `docker run` to start a new container using the `bun-hello-world` imag
108
113
 
109
114
  The `run` command prints a string representing the _container ID_.
110
115
 
111
- ```sh
112
- $ docker run -d -p 3000:3000 bun-hello-world
116
+ ```sh terminal icon="terminal"
117
+ docker run -d -p 3000:3000 bun-hello-world
118
+ ```
119
+
120
+ ```txt
113
121
  7f03e212a15ede8644379bce11a13589f563d3909a9640446c5bbefce993678d
114
122
  ```
115
123
 
@@ -121,16 +129,19 @@ The container is now running in the background. Visit [localhost:3000](http://lo
121
129
 
122
130
  To stop the container, we'll use `docker stop <container-id>`.
123
131
 
124
- ```sh
125
- $ docker stop 7f03e212a15ede8644379bce11a13589f563d3909a9640446c5bbefce993678d
132
+ ```sh terminal icon="terminal"
133
+ docker stop 7f03e212a15ede8644379bce11a13589f563d3909a9640446c5bbefce993678d
126
134
  ```
127
135
 
128
136
  ---
129
137
 
130
138
  If you can't find the container ID, you can use `docker ps` to list all running containers.
131
139
 
132
- ```sh
133
- $ docker ps
140
+ ```sh terminal icon="terminal"
141
+ docker ps
142
+ ```
143
+
144
+ ```txt
134
145
  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
135
146
  7f03e212a15e bun-hello-world "bun run index.ts" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp flamboyant_cerf
136
147
  ```