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,5 +1,7 @@
1
1
  ---
2
- name: Read stderr from a child process
2
+ title: Read stderr from a child process
3
+ sidebarTitle: Read stderr
4
+ mode: center
3
5
  ---
4
6
 
5
7
  When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the child process inherits the `stderr` of the spawning process. If instead you'd prefer to read and handle `stderr`, set the `stderr` option to `"pipe"`.
@@ -8,6 +10,7 @@ When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the child process in
8
10
  const proc = Bun.spawn(["echo", "hello"], {
9
11
  stderr: "pipe",
10
12
  });
13
+
11
14
  proc.stderr; // => ReadableStream
12
15
  ```
13
16
 
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Read stdout from a child process
2
+ title: Read stdout from a child process
3
+ sidebarTitle: Read stdout
4
+ mode: center
3
5
  ---
4
6
 
5
7
  When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the `stdout` of the child process can be consumed as a `ReadableStream` via `proc.stdout`.
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Spawn a child process
2
+ title: Spawn a child process
3
+ sidebarTitle: Spawn child process
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Use [`Bun.spawn()`](https://bun.com/docs/api/spawn) to spawn a child process.
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Read from stdin
2
+ title: Read from stdin
3
+ sidebarTitle: Read from stdin
4
+ mode: center
3
5
  ---
4
6
 
5
7
  For CLI tools, it's often useful to read from `stdin`. In Bun, the `console` object is an `AsyncIterable` that yields lines from `stdin`.
6
8
 
7
- ```ts#index.ts
9
+ ```ts index.ts icon="/icons/typescript.svg"
8
10
  const prompt = "Type something: ";
9
11
  process.stdout.write(prompt);
10
12
  for await (const line of console) {
@@ -17,8 +19,11 @@ for await (const line of console) {
17
19
 
18
20
  Running this file results in a never-ending interactive prompt that echoes whatever the user types.
19
21
 
20
- ```sh
21
- $ bun run index.ts
22
+ ```sh terminal icon="terminal"
23
+ bun run index.ts
24
+ ```
25
+
26
+ ```txt
22
27
  Type something: hello
23
28
  You typed: hello
24
29
  Type something: hello again
@@ -31,7 +36,7 @@ Bun also exposes stdin as a `BunFile` via `Bun.stdin`. This is useful for increm
31
36
 
32
37
  There is no guarantee that the chunks will be split line-by-line.
33
38
 
34
- ```ts#stdin.ts
39
+ ```ts stdin.ts icon="/icons/typescript.svg"
35
40
  for await (const chunk of Bun.stdin.stream()) {
36
41
  // chunk is Uint8Array
37
42
  // this converts it to text (assumes ASCII encoding)
@@ -44,8 +49,11 @@ for await (const chunk of Bun.stdin.stream()) {
44
49
 
45
50
  This will print the input that is piped into the `bun` process.
46
51
 
47
- ```sh
48
- $ echo "hello" | bun run stdin.ts
52
+ ```sh terminal icon="terminal"
53
+ echo "hello" | bun run stdin.ts
54
+ ```
55
+
56
+ ```txt
49
57
  Chunk: hello
50
58
  ```
51
59
 
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Read a file to an ArrayBuffer
2
+ title: Read a file to an ArrayBuffer
3
+ sidebarTitle: Read to ArrayBuffer
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.arrayBuffer()` to read the file as an `ArrayBuffer`.
6
8
 
7
- ```ts
9
+ ```ts index.ts icon="/icons/typescript.svg"
8
10
  const path = "/path/to/package.json";
9
11
  const file = Bun.file(path);
10
12
 
@@ -15,7 +17,7 @@ const buffer = await file.arrayBuffer();
15
17
 
16
18
  The binary content in the `ArrayBuffer` can then be read as a typed array, such as `Int8Array`. For `Uint8Array`, use [`.bytes()`](./uint8array).
17
19
 
18
- ```ts
20
+ ```ts index.ts icon="/icons/typescript.svg"
19
21
  const buffer = await file.arrayBuffer();
20
22
  const bytes = new Int8Array(buffer);
21
23
 
@@ -1,12 +1,14 @@
1
1
  ---
2
- name: Read a file to a Buffer
2
+ title: Read a file to a Buffer
3
+ sidebarTitle: Read to Buffer
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats.
6
8
 
7
9
  To read the file into a `Buffer` instance, first use `.arrayBuffer()` to consume the file as an `ArrayBuffer`, then use `Buffer.from()` to create a `Buffer` from the `ArrayBuffer`.
8
10
 
9
- ```ts
11
+ ```ts index.ts icon="/icons/typescript.svg"
10
12
  const path = "/path/to/package.json";
11
13
  const file = Bun.file(path);
12
14
 
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Check if a file exists
2
+ title: Check if a file exists
3
+ sidebarTitle: Check file exists
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. Use the `.exists()` method to check if a file exists at the given path.
6
8
 
7
- ```ts
9
+ ```ts index.ts icon="/icons/typescript.svg"
8
10
  const path = "/path/to/package.json";
9
11
  const file = Bun.file(path);
10
12
 
@@ -1,12 +1,14 @@
1
1
  ---
2
- name: Read a JSON file
2
+ title: Read a JSON file
3
+ sidebarTitle: Read JSON file
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.json()` to read and parse the contents of a `.json` file as a plain object.
6
8
 
7
9
  The MIME type of the `BunFile` will be set accordingly.
8
10
 
9
- ```ts
11
+ ```ts index.ts icon="/icons/typescript.svg"
10
12
  const path = "/path/to/package.json";
11
13
  const file = Bun.file(path);
12
14
 
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Get the MIME type of a file
2
+ title: Get the MIME type of a file
3
+ sidebarTitle: Get MIME type
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob`, so use the `.type` property to read the MIME type.
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Read a file as a ReadableStream
2
+ title: Read a file as a ReadableStream
3
+ sidebarTitle: Read as stream
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.stream()` to consume the file incrementally as a `ReadableStream`.
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Read a file as a string
2
+ title: Read a file as a string
3
+ sidebarTitle: Read as string
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.text()` to read the contents as a string.
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Read a file to a Uint8Array
2
+ title: Read a file to a Uint8Array
3
+ sidebarTitle: Read to Uint8Array
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats.
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Watch a directory for changes
2
+ title: Watch a directory for changes
3
+ sidebarTitle: Watch directory
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Bun implements the `node:fs` module, including the `fs.watch` function for listening for file system changes.
@@ -21,13 +23,9 @@ To listen to changes in subdirectories, pass the `recursive: true` option to `fs
21
23
  ```ts
22
24
  import { watch } from "fs";
23
25
 
24
- const watcher = watch(
25
- import.meta.dir,
26
- { recursive: true },
27
- (event, relativePath) => {
28
- console.log(`Detected ${event} in ${relativePath}`);
29
- },
30
- );
26
+ const watcher = watch(import.meta.dir, { recursive: true }, (event, filename) => {
27
+ console.log(`Detected ${event} in ${filename}`);
28
+ });
31
29
  ```
32
30
 
33
31
  ---
@@ -1,11 +1,13 @@
1
1
  ---
2
- name: Build-time constants with --define
2
+ title: Build-time constants with --define
3
+ sidebarTitle: Build-time constants
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `--define` flag can be used with `bun build` and `bun build --compile` to inject build-time constants into your application. This is especially useful for embedding metadata like build versions, timestamps, or configuration flags directly into your compiled executables.
6
8
 
7
- ```sh
8
- $ bun build --compile --define BUILD_VERSION='"1.2.3"' --define BUILD_TIME='"2024-01-15T10:30:00Z"' src/index.ts --outfile myapp
9
+ ```sh terminal icon="terminal"
10
+ bun build --compile --define BUILD_VERSION='"1.2.3"' --define BUILD_TIME='"2024-01-15T10:30:00Z"' src/index.ts --outfile myapp
9
11
  ```
10
12
 
11
13
  ---
@@ -27,21 +29,21 @@ This is similar to `gcc -D` or `#define` in C/C++, but for JavaScript/TypeScript
27
29
 
28
30
  ### With `bun build`
29
31
 
30
- ```sh
32
+ ```sh terminal icon="terminal"
31
33
  # Bundle with build-time constants
32
- $ bun build --define BUILD_VERSION='"1.0.0"' --define NODE_ENV='"production"' src/index.ts --outdir ./dist
34
+ bun build --define BUILD_VERSION='"1.0.0"' --define NODE_ENV='"production"' src/index.ts --outdir ./dist
33
35
  ```
34
36
 
35
37
  ### With `bun build --compile`
36
38
 
37
- ```sh
39
+ ```sh terminal icon="terminal"
38
40
  # Compile to executable with build-time constants
39
- $ bun build --compile --define BUILD_VERSION='"1.0.0"' --define BUILD_TIME='"2024-01-15T10:30:00Z"' src/cli.ts --outfile mycli
41
+ bun build --compile --define BUILD_VERSION='"1.0.0"' --define BUILD_TIME='"2024-01-15T10:30:00Z"' src/cli.ts --outfile mycli
40
42
  ```
41
43
 
42
44
  ### JavaScript API
43
45
 
44
- ```ts
46
+ ```ts build.ts icon="/icons/typescript.svg"
45
47
  await Bun.build({
46
48
  entrypoints: ["./src/index.ts"],
47
49
  outdir: "./dist",
@@ -61,9 +63,9 @@ await Bun.build({
61
63
 
62
64
  Embed version and build metadata directly into your executable:
63
65
 
64
- {% codetabs %}
66
+ <CodeGroup>
65
67
 
66
- ```ts#src/version.ts
68
+ ```ts src/version.ts icon="/icons/typescript.svg"
67
69
  // These constants are replaced at build time
68
70
  declare const BUILD_VERSION: string;
69
71
  declare const BUILD_TIME: string;
@@ -78,21 +80,21 @@ export function getVersion() {
78
80
  }
79
81
  ```
80
82
 
81
- ```sh#Build command
82
- $ bun build --compile \
83
+ ```sh Build command
84
+ bun build --compile \
83
85
  --define BUILD_VERSION='"1.2.3"' \
84
86
  --define BUILD_TIME='"2024-01-15T10:30:00Z"' \
85
87
  --define GIT_COMMIT='"abc123"' \
86
88
  src/cli.ts --outfile mycli
87
89
  ```
88
90
 
89
- {% /codetabs %}
91
+ </CodeGroup>
90
92
 
91
93
  ### Feature flags
92
94
 
93
95
  Use build-time constants to enable/disable features:
94
96
 
95
- ```ts
97
+ ```ts src/version.ts icon="/icons/typescript.svg"
96
98
  // Replaced at build time
97
99
  declare const ENABLE_ANALYTICS: boolean;
98
100
  declare const ENABLE_DEBUG: boolean;
@@ -111,17 +113,17 @@ if (ENABLE_DEBUG) {
111
113
 
112
114
  ```sh
113
115
  # Production build - analytics enabled, debug disabled
114
- $ bun build --compile --define ENABLE_ANALYTICS=true --define ENABLE_DEBUG=false src/app.ts --outfile app-prod
116
+ bun build --compile --define ENABLE_ANALYTICS=true --define ENABLE_DEBUG=false src/app.ts --outfile app-prod
115
117
 
116
118
  # Development build - both enabled
117
- $ bun build --compile --define ENABLE_ANALYTICS=false --define ENABLE_DEBUG=true src/app.ts --outfile app-dev
119
+ bun build --compile --define ENABLE_ANALYTICS=false --define ENABLE_DEBUG=true src/app.ts --outfile app-dev
118
120
  ```
119
121
 
120
122
  ### Configuration
121
123
 
122
124
  Replace configuration objects at build time:
123
125
 
124
- ```ts
126
+ ```ts src/version.ts icon="/icons/typescript.svg"
125
127
  declare const CONFIG: {
126
128
  apiUrl: string;
127
129
  timeout: number;
@@ -135,7 +137,7 @@ const response = await fetch(CONFIG.apiUrl, {
135
137
  ```
136
138
 
137
139
  ```sh
138
- $ bun build --compile --define 'CONFIG={"apiUrl":"https://api.example.com","timeout":5000,"retries":3}' src/app.ts --outfile app
140
+ bun build --compile --define 'CONFIG={"apiUrl":"https://api.example.com","timeout":5000,"retries":3}' src/app.ts --outfile app
139
141
  ```
140
142
 
141
143
  ---
@@ -162,7 +164,7 @@ Generate build-time constants from shell commands:
162
164
 
163
165
  ```sh
164
166
  # Use git to get current commit and timestamp
165
- $ bun build --compile \
167
+ bun build --compile \
166
168
  --define BUILD_VERSION="\"$(git describe --tags --always)\"" \
167
169
  --define BUILD_TIME="\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"" \
168
170
  --define GIT_COMMIT="\"$(git rev-parse HEAD)\"" \
@@ -275,13 +277,13 @@ When building for multiple platforms, constants work the same way:
275
277
 
276
278
  ```sh
277
279
  # Linux
278
- $ bun build --compile --target=bun-linux-x64 --define PLATFORM='"linux"' src/app.ts --outfile app-linux
280
+ bun build --compile --target=bun-linux-x64 --define PLATFORM='"linux"' src/app.ts --outfile app-linux
279
281
 
280
282
  # macOS
281
- $ bun build --compile --target=bun-darwin-x64 --define PLATFORM='"darwin"' src/app.ts --outfile app-macos
283
+ bun build --compile --target=bun-darwin-x64 --define PLATFORM='"darwin"' src/app.ts --outfile app-macos
282
284
 
283
285
  # Windows
284
- $ bun build --compile --target=bun-windows-x64 --define PLATFORM='"windows"' src/app.ts --outfile app-windows.exe
286
+ bun build --compile --target=bun-windows-x64 --define PLATFORM='"windows"' src/app.ts --outfile app-windows.exe
285
287
  ```
286
288
 
287
289
  ---
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Install dependencies with Bun in GitHub Actions
2
+ title: Install and run Bun in GitHub Actions
3
+ sidebarTitle: GitHub Actions
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Use the official [`setup-bun`](https://github.com/oven-sh/setup-bun) GitHub Action to install `bun` in your GitHub Actions runner.
6
8
 
7
- ```yaml-diff#workflow.yml
9
+ ```yaml workflow.yml icon="file-code"
8
10
  name: my-workflow
9
11
  jobs:
10
12
  my-job:
@@ -13,17 +15,19 @@ jobs:
13
15
  steps:
14
16
  # ...
15
17
  - uses: actions/checkout@v4
16
- + - uses: oven-sh/setup-bun@v2
18
+ - uses: oven-sh/setup-bun@v2 // [!code ++]
17
19
 
18
20
  # run any `bun` or `bunx` command
19
- + - run: bun install
21
+ - run: bun install // [!code ++]
22
+ - run: bun index.ts // [!code ++]
23
+ - run: bun run build // [!code ++]
20
24
  ```
21
25
 
22
26
  ---
23
27
 
24
28
  To specify a version of Bun to install:
25
29
 
26
- ```yaml-diff#workflow.yml
30
+ ```yaml workflow.yml icon="file-code"
27
31
  name: my-workflow
28
32
  jobs:
29
33
  my-job:
@@ -32,8 +36,8 @@ jobs:
32
36
  steps:
33
37
  # ...
34
38
  - uses: oven-sh/setup-bun@v2
35
- + with:
36
- + version: "latest" # or "canary"
39
+ with: // [!code ++]
40
+ bun-version: 1.2.0 # or "latest", "canary", <sha> // [!code ++]
37
41
  ```
38
42
 
39
43
  ---
@@ -1,20 +1,25 @@
1
1
  ---
2
- name: Codesign a single-file JavaScript executable on macOS
2
+ title: Codesign a single-file JavaScript executable on macOS
3
3
  description: Fix the "can't be opened because it is from an unidentified developer" Gatekeeper warning when running your JavaScript executable.
4
+ sidebarTitle: Codesign on macOS
5
+ mode: center
4
6
  ---
5
7
 
6
8
  Compile your executable using the `--compile` flag.
7
9
 
8
10
  ```sh
9
- $ bun build --compile ./path/to/entry.ts --outfile myapp
11
+ bun build --compile ./path/to/entry.ts --outfile myapp
10
12
  ```
11
13
 
12
14
  ---
13
15
 
14
16
  List your available signing identities. One of these will be your signing identity that you pass to the `codesign` command. This command requires macOS.
15
17
 
16
- ```sh
17
- $ security find-identity -v -p codesigning
18
+ ```sh terminal icon="terminal"
19
+ security find-identity -v -p codesigning
20
+ ```
21
+
22
+ ```txt
18
23
  1. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Developer ID Application: Your Name (ZZZZZZZZZZ)"
19
24
  1 valid identities found
20
25
  ```
@@ -23,7 +28,7 @@ $ security find-identity -v -p codesigning
23
28
 
24
29
  Optional, but recommended: create an `entitlements.plist` file with the necessary permissions for the JavaScript engine to work correctly.
25
30
 
26
- ```xml#entitlements.plist
31
+ ```xml entitlements.plist icon="file-code"
27
32
  <?xml version="1.0" encoding="UTF-8"?>
28
33
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
29
34
  <plist version="1.0">
@@ -46,11 +51,11 @@ Optional, but recommended: create an `entitlements.plist` file with the necessar
46
51
 
47
52
  Sign your executable using the `codesign` command and verify it works.
48
53
 
49
- ```bash
50
- $ codesign --entitlements entitlements.plist -vvvv --deep --sign "XXXXXXXXXX" ./myapp --force
51
- $ codesign -vvv --verify ./myapp
54
+ ```bash terminal icon="terminal"
55
+ codesign --entitlements entitlements.plist -vvvv --deep --sign "XXXXXXXXXX" ./myapp --force
56
+ codesign -vvv --verify ./myapp
52
57
  ```
53
58
 
54
59
  ---
55
60
 
56
- For more information on macOS codesigning, refer to [Apple's Code Signing documentation](https://developer.apple.com/documentation/security/code_signing_services). For details about creating single-file executables with Bun, see [Standalone Executables](/docs/bundler/executables). This guide requires Bun v1.2.4 or newer.
61
+ For more information on macOS codesigning, refer to [Apple's Code Signing documentation](https://developer.apple.com/documentation/security/code_signing_services). For details about creating single-file executables with Bun, see [Standalone Executables](/bundler/executables). This guide requires Bun v1.2.4 or newer.
@@ -1,12 +1,14 @@
1
1
  ---
2
- name: Define and replace static globals & constants
2
+ title: Define and replace static globals & constants
3
+ sidebarTitle: Define constants
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `--define` flag lets you declare statically-analyzable constants and globals. It replace all usages of an identifier or property in a JavaScript or TypeScript file with a constant value. This feature is supported at runtime and also in `bun build`. This is sort of similar to `#define` in C/C++, except for JavaScript.
6
8
 
7
- ```sh
8
- $ bun --define process.env.NODE_ENV="'production'" src/index.ts # Runtime
9
- $ bun build --define process.env.NODE_ENV="'production'" src/index.ts # Build
9
+ ```sh terminal icon="terminal"
10
+ bun --define process.env.NODE_ENV="'production'" src/index.ts # Runtime
11
+ bun build --define process.env.NODE_ENV="'production'" src/index.ts # Build
10
12
  ```
11
13
 
12
14
  ---
@@ -25,12 +27,13 @@ if (process.env.NODE_ENV === "production") {
25
27
 
26
28
  Before the code reaches the JavaScript engine, Bun replaces `process.env.NODE_ENV` with `"production"`.
27
29
 
28
- ```ts-diff
29
- + if ("production" === "production") {
30
- console.log("Production mode");
31
- } else {
32
- console.log("Development mode");
33
- }
30
+ ```ts
31
+ if ("production" === "production") {
32
+ // [!code ++]
33
+ console.log("Production mode");
34
+ } else {
35
+ console.log("Development mode");
36
+ }
34
37
  ```
35
38
 
36
39
  ---
@@ -39,12 +42,13 @@ It doesn't stop there. Bun's optimizing transpiler is smart enough to do some ba
39
42
 
40
43
  Since `"production" === "production"` is always `true`, Bun replaces the entire expression with the `true` value.
41
44
 
42
- ```ts-diff
43
- + if (true) {
44
- console.log("Production mode");
45
- } else {
46
- console.log("Development mode");
47
- }
45
+ ```ts
46
+ if (true) {
47
+ // [!code ++]
48
+ console.log("Production mode");
49
+ } else {
50
+ console.log("Development mode");
51
+ }
48
52
  ```
49
53
 
50
54
  ---
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Delete directories
2
+ title: Delete directories
3
+ sidebarTitle: Delete directories
4
+ mode: center
3
5
  ---
4
6
 
5
7
  To recursively delete a directory and all its contents, use `rm` from `node:fs/promises`. This is like running `rm -rf` in JavaScript.
6
8
 
7
- ```ts
9
+ ```ts delete-directory.ts icon="/icons/typescript.svg"
8
10
  import { rm } from "node:fs/promises";
9
11
 
10
12
  // Delete a directory and all its contents
@@ -20,7 +22,7 @@ These options configure the deletion behavior:
20
22
 
21
23
  You can also use it without `force` to ensure the directory exists:
22
24
 
23
- ```ts
25
+ ```ts delete-directory.ts icon="/icons/typescript.svg"
24
26
  try {
25
27
  await rm("path/to/directory", { recursive: true });
26
28
  } catch (error) {
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Delete files
2
+ title: Delete files
3
+ sidebarTitle: Delete files
4
+ mode: center
3
5
  ---
4
6
 
5
7
  To delete a file, use `Bun.file(path).delete()`.
6
8
 
7
- ```ts
9
+ ```ts delete-file.ts icon="/icons/typescript.svg"
8
10
  // Delete a file
9
11
  const file = Bun.file("path/to/file.txt");
10
12
  await file.delete();
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Inspect memory usage using V8 heap snapshots
2
+ title: Inspect memory usage using V8 heap snapshots
3
+ sidebarTitle: Heap snapshots
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Bun implements V8's heap snapshot API, which allows you to create snapshots of the heap at runtime. This helps debug memory leaks in your JavaScript/TypeScript application.
6
8
 
7
- ```ts#snapshot.ts
9
+ ```ts snapshot.ts icon="/icons/typescript.svg"
8
10
  import v8 from "node:v8";
9
11
 
10
12
  // Creates a heap snapshot file with an auto-generated name
@@ -23,4 +25,4 @@ To view V8 heap snapshots in Chrome DevTools:
23
25
  3. Click the "Load" button (folder icon)
24
26
  4. Select your `.heapsnapshot` file
25
27
 
26
- {% image src="/images/chrome-devtools-memory.png" alt="Chrome DevTools Memory Tab" width="100%" /%}
28
+ <Frame>![Chrome DevTools Memory Tab](/images/chrome-devtools-memory.png)</Frame>
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Import a HTML file as text
2
+ title: Import a HTML file as text
3
+ sidebarTitle: Import HTML
4
+ mode: center
3
5
  ---
4
6
 
5
7
  To import a `.html` file in Bun as a text file, use the `type: "text"` attribute in the import statement.
6
8
 
7
- ```ts
9
+ ```ts file.ts icon="/icons/typescript.svg"
8
10
  import html from "./file.html" with { type: "text" };
9
11
 
10
12
  console.log(html); // <!DOCTYPE html><html><head>...
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Import a JSON file
2
+ title: Import a JSON file
3
+ sidebarTitle: Import JSON
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Bun natively supports `.json` imports.
6
8
 
7
- ```json#package.json
9
+ ```json package.json icon="file-json"
8
10
  {
9
11
  "name": "bun",
10
12
  "version": "1.0.0",
@@ -19,7 +21,7 @@ Bun natively supports `.json` imports.
19
21
 
20
22
  Import the file like any other source file.
21
23
 
22
- ```ts
24
+ ```ts data.ts icon="/icons/typescript.svg"
23
25
  import data from "./package.json";
24
26
 
25
27
  data.name; // => "bun"
@@ -31,7 +33,7 @@ data.author.name; // => "John Dough"
31
33
 
32
34
  Bun also supports [Import Attributes](https://github.com/tc39/proposal-import-attributes/) and [JSON modules](https://github.com/tc39/proposal-json-modules) syntax.
33
35
 
34
- ```ts
36
+ ```ts data.ts icon="/icons/typescript.svg"
35
37
  import data from "./package.json" with { type: "json" };
36
38
 
37
39
  data.name; // => "bun"
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Import a TOML file
2
+ title: Import a TOML file
3
+ sidebarTitle: Import TOML
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Bun natively supports importing `.toml` files.
6
8
 
7
- ```toml#data.toml
9
+ ```toml data.toml icon="file-code"
8
10
  name = "bun"
9
11
  version = "1.0.0"
10
12
 
@@ -17,7 +19,7 @@ email = "john@dough.com"
17
19
 
18
20
  Import the file like any other source file.
19
21
 
20
- ```ts
22
+ ```ts data.ts icon="/icons/typescript.svg"
21
23
  import data from "./data.toml";
22
24
 
23
25
  data.name; // => "bun"