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: Migrate from npm install to bun install
2
+ title: Migrate from npm install to bun install
3
+ sidebarTitle: Migrate from npm to bun
4
+ mode: center
3
5
  ---
4
6
 
5
7
  `bun install` is a Node.js compatible npm client designed to be an incredibly fast successor to npm.
@@ -11,18 +13,18 @@ We've put a lot of work into making sure that the migration path from `npm insta
11
13
  - **`.npmrc` compatible**: bun install reads npm registry configuration from npm's `.npmrc`, so you can use the same configuration for both npm and Bun.
12
14
  - **Hardlinks**: On Windows and Linux, `bun install` uses hardlinks to conserve disk space and install times.
13
15
 
14
- ```bash
16
+ ```bash terminal icon="terminal"
15
17
  # It only takes one command to migrate
16
- $ bun i
18
+ bun i
17
19
 
18
20
  # To add dependencies:
19
- $ bun i @types/bun
21
+ bun i @types/bun
20
22
 
21
23
  # To add devDependencies:
22
- $ bun i -d @types/bun
24
+ bun i -d @types/bun
23
25
 
24
26
  # To remove a dependency:
25
- $ bun rm @types/bun
27
+ bun rm @types/bun
26
28
  ```
27
29
 
28
30
  ---
@@ -40,17 +42,17 @@ Run scripts from package.json, executables from `node_modules/.bin` (sort of lik
40
42
 
41
43
  When you use `bun run <executable>`, it will choose the locally-installed executable
42
44
 
43
- ```sh
45
+ ```sh terminal icon="terminal"
44
46
  # Run a package.json script:
45
- $ bun my-script
46
- $ bun run my-script
47
+ bun my-script
48
+ bun run my-script
47
49
 
48
50
  # Run an executable in node_modules/.bin:
49
- $ bun my-executable # such as tsc, esbuild, etc.
50
- $ bun run my-executable
51
+ bun my-executable # such as tsc, esbuild, etc.
52
+ bun run my-executable
51
53
 
52
54
  # Run a JavaScript/TypeScript file:
53
- $ bun ./index.ts
55
+ bun ./index.ts
54
56
  ```
55
57
 
56
58
  ---
@@ -61,7 +63,7 @@ $ bun ./index.ts
61
63
 
62
64
  In package.json, you can set `"workspaces"` to an array of relative paths.
63
65
 
64
- ```json#package.json
66
+ ```json package.json icon="file-json"
65
67
  {
66
68
  "name": "my-app",
67
69
  "workspaces": ["packages/*", "apps/*"]
@@ -74,8 +76,8 @@ In package.json, you can set `"workspaces"` to an array of relative paths.
74
76
 
75
77
  In Bun, the `--filter` flag accepts a glob pattern, and will run the command concurrently for all workspace packages with a `name` that matches the pattern, respecting dependency order.
76
78
 
77
- ```sh
78
- $ bun --filter 'lib-*' my-script
79
+ ```sh terminal icon="terminal"
80
+ bun --filter 'lib-*' my-script
79
81
  # instead of:
80
82
  # npm run --workspace lib-foo --workspace lib-bar my-script
81
83
  ```
@@ -86,21 +88,21 @@ $ bun --filter 'lib-*' my-script
86
88
 
87
89
  To update a dependency, you can use `bun update <package>`. This will update the dependency to the latest version that satisfies the semver range specified in package.json.
88
90
 
89
- ```sh
91
+ ```sh terminal icon="terminal"
90
92
  # Update a single dependency
91
- $ bun update @types/bun
93
+ bun update @types/bun
92
94
 
93
95
  # Update all dependencies
94
- $ bun update
96
+ bun update
95
97
 
96
98
  # Ignore semver, update to the latest version
97
- $ bun update @types/bun --latest
99
+ bun update @types/bun --latest
98
100
 
99
101
  # Update a dependency to a specific version
100
- $ bun update @types/bun@1.3.2-canary.20251105T140650
102
+ bun update @types/bun@1.3.1
101
103
 
102
104
  # Update all dependencies to the latest versions
103
- $ bun update --latest
105
+ bun update --latest
104
106
  ```
105
107
 
106
108
  ---
@@ -109,8 +111,11 @@ $ bun update --latest
109
111
 
110
112
  To view outdated dependencies, run `bun outdated`. This is like `npm outdated` but with more compact output.
111
113
 
112
- ```sh
113
- $ bun outdated
114
+ ```sh terminal icon="terminal"
115
+ bun outdated
116
+ ```
117
+
118
+ ```txt
114
119
  ┌────────────────────────────────────────┬─────────┬────────┬────────┐
115
120
  │ Package │ Current │ Update │ Latest │
116
121
  ├────────────────────────────────────────┼─────────┼────────┼────────┤
@@ -144,18 +149,27 @@ $ bun outdated
144
149
 
145
150
  To list installed packages, you can use `bun pm ls`. This will list all the packages that are installed in the `node_modules` folder using Bun's lockfile as the source of truth. You can pass the `-a` flag to list all installed packages, including transitive dependencies.
146
151
 
147
- ```sh
152
+ ```sh terminal icon="terminal"
148
153
  # List top-level installed packages:
149
- $ bun pm ls
154
+ bun pm ls
155
+ ```
156
+
157
+ ```txt
150
158
  my-pkg node_modules (781)
151
159
  ├── @types/node@20.16.5
152
160
  ├── @types/react@18.3.8
153
161
  ├── @types/react-dom@18.3.0
154
162
  ├── eslint@8.57.1
155
163
  ├── eslint-config-next@14.2.8
164
+ ...
165
+ ```
156
166
 
167
+ ```sh terminal icon="terminal"
157
168
  # List all installed packages:
158
- $ bun pm ls -a
169
+ bun pm ls -a
170
+ ```
171
+
172
+ ```txt
159
173
  my-pkg node_modules
160
174
  ├── @alloc/quick-lru@5.2.0
161
175
  ├── @isaacs/cliui@8.0.2
@@ -172,10 +186,12 @@ my-pkg node_modules
172
186
 
173
187
  To create a package tarball, you can use `bun pm pack`. This will create a tarball of the package in the current directory.
174
188
 
175
- ```sh
189
+ ```sh terminal icon="terminal"
176
190
  # Create a tarball
177
- $ bun pm pack
191
+ bun pm pack
192
+ ```
178
193
 
194
+ ```txt
179
195
  Total files: 46
180
196
  Shasum: 2ee19b6f0c6b001358449ca0eadead703f326216
181
197
  Integrity: sha512-ZV0lzWTEkGAMz[...]Gl4f8lA9sl97g==
@@ -191,12 +207,12 @@ If the package references `node` in the `#!/usr/bin/env node` shebang, `bun run`
191
207
 
192
208
  When you pass `--bun` to `bun run`, we create a symlink to the locally-installed Bun executable named `"node"` in a temporary directory and add that to your `PATH` for the duration of the script's execution.
193
209
 
194
- ```sh
210
+ ```sh terminal icon="terminal"
195
211
  # Force using Bun's runtime instead of node
196
- $ bun --bun my-script
212
+ bun --bun my-script
197
213
 
198
214
  # This also works:
199
- $ bun run --bun my-script
215
+ bun run --bun my-script
200
216
  ```
201
217
 
202
218
  ---
@@ -205,10 +221,10 @@ $ bun run --bun my-script
205
221
 
206
222
  You can install packages globally using `bun i -g <package>`. This will install into a `.bun/install/global/node_modules` folder inside your home directory by default.
207
223
 
208
- ```sh
224
+ ```sh terminal icon="terminal"
209
225
  # Install a package globally
210
- $ bun i -g eslint
226
+ bun i -g eslint
211
227
 
212
228
  # Run a globally-installed package without the `bun run` prefix
213
- $ eslint --init
229
+ eslint --init
214
230
  ```
@@ -1,16 +1,19 @@
1
1
  ---
2
- name: Configure git to diff Bun's lockb lockfile
2
+ title: Configure git to diff Bun's lockb lockfile
3
+ sidebarTitle: Configure git to diff Bun's lockfile
4
+ mode: center
3
5
  ---
4
6
 
5
- {% callout %}
6
- Bun v1.1.39 introduced `bun.lock`, a JSONC formatted lockfile. `bun.lock` is human-readable and git-diffable without configuration, at no cost to performance. [**Learn more.**](https://bun.com/docs/install/lockfile#text-based-lockfile)
7
- {% /callout %}
7
+ <Note>
8
+ Bun v1.1.39 introduced `bun.lock`, a JSONC formatted lockfile. `bun.lock` is human-readable and git-diffable without
9
+ configuration, at no cost to performance. [**Learn more.**](https://bun.com/docs/install/lockfile#text-based-lockfile)
10
+ </Note>
8
11
 
9
12
  ---
10
13
 
11
14
  To teach `git` how to generate a human-readable diff of Bun's binary lockfile format (`.lockb`), add the following to your local or global `.gitattributes` file:
12
15
 
13
- ```js
16
+ ```js gitattributes icon="file-code"
14
17
  *.lockb binary diff=lockb
15
18
  ```
16
19
 
@@ -18,18 +21,18 @@ To teach `git` how to generate a human-readable diff of Bun's binary lockfile fo
18
21
 
19
22
  Then add the following to you local git config with:
20
23
 
21
- ```sh
22
- $ git config diff.lockb.textconv bun
23
- $ git config diff.lockb.binary true
24
+ ```sh terminal icon="terminal"
25
+ git config diff.lockb.textconv bun
26
+ git config diff.lockb.binary true
24
27
  ```
25
28
 
26
29
  ---
27
30
 
28
31
  To globally configure git to diff Bun's lockfile, add the following to your global git config with:
29
32
 
30
- ```sh
31
- $ git config --global diff.lockb.textconv bun
32
- $ git config --global diff.lockb.binary true
33
+ ```sh terminal icon="terminal"
34
+ git config --global diff.lockb.textconv bun
35
+ git config --global diff.lockb.binary true
33
36
  ```
34
37
 
35
38
  ---
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Using bun install with Artifactory
2
+ title: Using bun install with Artifactory
3
+ sidebarTitle: JFrog Artifactory with Bun
4
+ mode: center
3
5
  ---
4
6
 
5
7
  [JFrog Artifactory](https://jfrog.com/artifactory/) is a package management system for npm, Docker, Maven, NuGet, Ruby, Helm, and more. It allows you to host your own private npm registry, npm packages, and other types of packages as well.
@@ -12,7 +14,7 @@ To use it with `bun install`, add a `bunfig.toml` file to your project with the
12
14
 
13
15
  Make sure to replace `MY_SUBDOMAIN` with your JFrog Artifactory subdomain, such as `jarred1234` and MY_TOKEN with your JFrog Artifactory token.
14
16
 
15
- ```toml#bunfig.toml
17
+ ```toml bunfig.toml icon="settings"
16
18
  [install.registry]
17
19
  url = "https://MY_SUBDOMAIN.jfrog.io/artifactory/api/npm/npm/_auth=MY_TOKEN"
18
20
  # Bun v1.0.3+ supports using an environment variable here
@@ -24,5 +26,3 @@ url = "https://MY_SUBDOMAIN.jfrog.io/artifactory/api/npm/npm/_auth=MY_TOKEN"
24
26
  ### Configure with `$NPM_CONFIG_REGISTRY`
25
27
 
26
28
  Like with npm, you can use the `NPM_CONFIG_REGISTRY` environment variable to configure JFrog Artifactory with bun install.
27
-
28
- ---
@@ -1,18 +1,20 @@
1
1
  ---
2
- name: Install a package under a different name
2
+ title: Install a package under a different name
3
+ sidebarTitle: Install with alias
4
+ mode: center
3
5
  ---
4
6
 
5
7
  To install an npm package under an alias:
6
8
 
7
- ```sh
8
- $ bun add my-custom-name@npm:zod
9
+ ```sh terminal icon="terminal"
10
+ bun add my-custom-name@npm:zod
9
11
  ```
10
12
 
11
13
  ---
12
14
 
13
15
  The `zod` package can now be imported as `my-custom-name`.
14
16
 
15
- ```ts
17
+ ```ts index.ts icon="/icons/typescript.svg"
16
18
  import { z } from "my-custom-name";
17
19
 
18
20
  z.string();
@@ -1,15 +1,17 @@
1
1
  ---
2
- name: Configure a private registry for an organization scope with bun install
2
+ title: Configure a private registry for an organization scope with bun install
3
+ sidebarTitle: Configure a scoped registry
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Private registries can be configured using either [`.npmrc`](https://bun.com/docs/install/npmrc) or [`bunfig.toml`](https://bun.com/docs/runtime/bunfig#install-registry). While both are supported, we recommend using **bunfig.toml** for enhanced flexibility and Bun-specific options.
6
8
 
7
9
  To configure a registry for a particular npm scope:
8
10
 
9
- ```toml#bunfig.toml
11
+ ```toml bunfig.toml icon="settings"
10
12
  [install.scopes]
11
13
  # as a string
12
- "@myorg1" = "https://username:password@registry.myorg.com/"
14
+ "@myorg1" = "https://usertitle:password@registry.myorg.com/"
13
15
 
14
16
  # as an object with username/password
15
17
  # you can reference environment variables
@@ -28,7 +30,7 @@ To configure a registry for a particular npm scope:
28
30
 
29
31
  Your `bunfig.toml` can reference environment variables. Bun automatically loads environment variables from `.env.local`, `.env.[NODE_ENV]`, and `.env`. See [Docs > Environment variables](https://bun.com/docs/runtime/env) for more information.
30
32
 
31
- ```toml#bunfig.toml
33
+ ```toml bunfig.toml icon="settings"
32
34
  [install.scopes]
33
35
  "@myorg3" = { token = "$npm_token", url = "https://registry.myorg.com/" }
34
36
  ```
@@ -1,12 +1,15 @@
1
1
  ---
2
- name: Add a trusted dependency
2
+ title: Add a trusted dependency
3
+ sidebarTitle: Add a trusted dependency
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Unlike other npm clients, Bun does not execute arbitrary lifecycle scripts for installed dependencies, such as `postinstall` and `node-gyp` builds. These scripts represent a potential security risk, as they can execute arbitrary code on your machine.
6
8
 
7
- {% callout %}
8
- Bun includes a default allowlist of popular packages containing `postinstall` scripts that are known to be safe. You can see this list [here](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt).
9
- {% /callout %}
9
+ <Note>
10
+ Bun includes a default allowlist of popular packages containing `postinstall` scripts that are known to be safe. You
11
+ can see this list [here](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt).
12
+ </Note>
10
13
 
11
14
  ---
12
15
 
@@ -19,26 +22,27 @@ If you are seeing one of the following errors, you are probably trying to use a
19
22
 
20
23
  To allow Bun to execute lifecycle scripts for a specific package, add the package to `trustedDependencies` in your package.json file. You can do this automatically by running the command `bun pm trust <pkg>`.
21
24
 
22
- {% callout %}
23
- Note that this only allows lifecycle scripts for the specific package listed in `trustedDependencies`, _not_ the dependencies of that dependency!
24
- {% /callout %}
25
-
26
- ```json-diff
27
- {
28
- "name": "my-app",
29
- "version": "1.0.0",
30
- + "trustedDependencies": ["my-trusted-package"]
31
- }
25
+ <Note>
26
+ Note that this only allows lifecycle scripts for the specific package listed in `trustedDependencies`, _not_ the
27
+ dependencies of that dependency!
28
+ </Note>
29
+
30
+ ```json package.json icon="file-json"
31
+ {
32
+ "name": "my-app",
33
+ "version": "1.0.0",
34
+ "trustedDependencies": ["my-trusted-package"] // [!code ++]
35
+ }
32
36
  ```
33
37
 
34
38
  ---
35
39
 
36
40
  Once this is added, run a fresh install. Bun will re-install your dependencies and properly install
37
41
 
38
- ```sh
39
- $ rm -rf node_modules
40
- $ rm bun.lock
41
- $ bun install
42
+ ```sh terminal icon="terminal"
43
+ rm -rf node_modules
44
+ rm bun.lock
45
+ bun install
42
46
  ```
43
47
 
44
48
  ---
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Configuring a monorepo using workspaces
2
+ title: Configuring a monorepo using workspaces
3
+ sidebarTitle: Workspaces with Bun
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Bun's package manager supports npm `"workspaces"`. This allows you to split a codebase into multiple distinct "packages" that live in the same repository, can depend on each other, and (when possible) share a `node_modules` directory.
@@ -10,13 +12,11 @@ Clone [this sample project](https://github.com/colinhacks/bun-workspaces) to exp
10
12
 
11
13
  The root `package.json` should not contain any `"dependencies"`, `"devDependencies"`, etc. Each individual package should be self-contained and declare its own dependencies. Similarly, it's conventional to declare `"private": true` to avoid accidentally publishing the root package to `npm`.
12
14
 
13
- ```json#package.json
15
+ ```json package.json icon="file-json"
14
16
  {
15
17
  "name": "my-monorepo",
16
18
  "private": true,
17
- "workspaces": [
18
- "packages/*"
19
- ]
19
+ "workspaces": ["packages/*"]
20
20
  }
21
21
  ```
22
22
 
@@ -24,7 +24,7 @@ The root `package.json` should not contain any `"dependencies"`, `"devDependenci
24
24
 
25
25
  It's common to place all packages in a `packages` directory. The `"workspaces"` field in package.json supports glob patterns, so you can use `packages/*` to indicate that each subdirectory of `packages` should be considered separate _package_ (also known as a workspace).
26
26
 
27
- ```txt
27
+ ```txt File Tree icon="folder-tree"
28
28
  .
29
29
  ├── package.json
30
30
  ├── node_modules
@@ -39,11 +39,11 @@ It's common to place all packages in a `packages` directory. The `"workspaces"`
39
39
 
40
40
  To add dependencies between workspaces, use the `"workspace:*"` syntax. Here we're adding `stuff-a` as a dependency of `stuff-b`.
41
41
 
42
- ```json-diff#packages/stuff-b/package.json
42
+ ```json packages/stuff-b/package.json icon="file-json"
43
43
  {
44
44
  "name": "stuff-b",
45
45
  "dependencies": {
46
- + "stuff-a": "workspace:*"
46
+ "stuff-a": "workspace:*" // [!code ++]
47
47
  }
48
48
  }
49
49
  ```
@@ -52,17 +52,17 @@ To add dependencies between workspaces, use the `"workspace:*"` syntax. Here we'
52
52
 
53
53
  Once added, run `bun install` from the project root to install dependencies for all workspaces.
54
54
 
55
- ```sh
56
- $ bun install
55
+ ```sh terminal icon="terminal"
56
+ bun install
57
57
  ```
58
58
 
59
59
  ---
60
60
 
61
61
  To add npm dependencies to a particular workspace, just `cd` to the appropriate directory and run `bun add` commands as you would normally. Bun will detect that you are in a workspace and hoist the dependency as needed.
62
62
 
63
- ```sh
64
- $ cd packages/stuff-a
65
- $ bun add zod
63
+ ```sh terminal icon="terminal"
64
+ cd packages/stuff-a
65
+ bun add zod
66
66
  ```
67
67
 
68
68
  ---
@@ -1,24 +1,27 @@
1
1
  ---
2
- name: Generate a yarn-compatible lockfile
2
+ title: Generate a yarn-compatible lockfile
3
+ sidebarTitle: Generate a yarn-compatible lockfile
4
+ mode: center
3
5
  ---
4
6
 
5
- {% callout %}
6
- Bun v1.1.39 introduced `bun.lock`, a JSONC formatted lockfile. `bun.lock` is human-readable and git-diffable without configuration, at no cost to performance. [**Learn more.**](https://bun.com/docs/install/lockfile#text-based-lockfile)
7
- {% /callout %}
7
+ <Note>
8
+ Bun v1.1.39 introduced `bun.lock`, a JSONC formatted lockfile. `bun.lock` is human-readable and git-diffable without
9
+ configuration, at no cost to performance. [**Learn more.**](https://bun.com/docs/install/lockfile#text-based-lockfile)
10
+ </Note>
8
11
 
9
12
  ---
10
13
 
11
14
  Use the `--yarn` flag to generate a Yarn-compatible `yarn.lock` file (in addition to `bun.lock`).
12
15
 
13
- ```sh
14
- $ bun install --yarn
16
+ ```sh terminal icon="terminal"
17
+ bun install --yarn
15
18
  ```
16
19
 
17
20
  ---
18
21
 
19
22
  To set this as the default behavior, add the following to your `bunfig.toml` file.
20
23
 
21
- ```toml#bunfig.toml
24
+ ```toml bunfig.toml icon="settings"
22
25
  [install.lockfile]
23
26
  print = "yarn"
24
27
  ```
@@ -27,8 +30,11 @@ print = "yarn"
27
30
 
28
31
  To print a Yarn lockfile to your console without writing it to disk, "run" your `bun.lockb` with `bun`.
29
32
 
30
- ```sh
31
- $ bun bun.lockb
33
+ ```sh terminal icon="terminal"
34
+ bun bun.lockb
35
+ ```
36
+
37
+ ```txt
32
38
  # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
33
39
  # yarn lockfile v1
34
40
  # bun ./bun.lockb --hash: 9BFBF11D86084AAB-9418b03ff880c569-390CE6459EACEC9A...
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Parse command-line arguments
2
+ title: Parse command-line arguments
3
+ sidebarTitle: Parse command-line arguments
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The _argument vector_ is the list of arguments passed to the program when it is run. It is available as `Bun.argv`.
6
8
 
7
- ```ts#cli.ts
9
+ ```ts cli.ts icon="/icons/typescript.svg"
8
10
  console.log(Bun.argv);
9
11
  ```
10
12
 
@@ -12,8 +14,11 @@ console.log(Bun.argv);
12
14
 
13
15
  Running this file with arguments results in the following:
14
16
 
15
- ```sh
16
- $ bun run cli.ts --flag1 --flag2 value
17
+ ```sh terminal icon="terminal"
18
+ bun run cli.ts --flag1 --flag2 value
19
+ ```
20
+
21
+ ```txt
17
22
  [ '/path/to/bun', '/path/to/cli.ts', '--flag1', '--flag2', 'value' ]
18
23
  ```
19
24
 
@@ -23,17 +28,17 @@ To parse `argv` into a more useful format, `util.parseArgs` would be helpful.
23
28
 
24
29
  Example:
25
30
 
26
- ```ts#cli.ts
31
+ ```ts cli.ts icon="/icons/typescript.svg"
27
32
  import { parseArgs } from "util";
28
33
 
29
34
  const { values, positionals } = parseArgs({
30
35
  args: Bun.argv,
31
36
  options: {
32
37
  flag1: {
33
- type: 'boolean',
38
+ type: "boolean",
34
39
  },
35
40
  flag2: {
36
- type: 'string',
41
+ type: "string",
37
42
  },
38
43
  },
39
44
  strict: true,
@@ -48,8 +53,11 @@ console.log(positionals);
48
53
 
49
54
  then it outputs
50
55
 
51
- ```sh
52
- $ bun run cli.ts --flag1 --flag2 value
56
+ ```sh terminal icon="terminal"
57
+ bun run cli.ts --flag1 --flag2 value
58
+ ```
59
+
60
+ ```txt
53
61
  {
54
62
  flag1: true,
55
63
  flag2: "value",
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Listen for CTRL+C
2
+ title: Listen for CTRL+C
3
+ sidebarTitle: Listen for CTRL+C
4
+ mode: center
3
5
  ---
4
6
 
5
7
  The `ctrl+c` shortcut sends an _interrupt signal_ to the running process. This signal can be intercepted by listening for the `SIGINT` event. If you want to close the process, you must explicitly call `process.exit()`.
6
8
 
7
- ```ts
9
+ ```ts process.ts icon="/icons/typescript.svg"
8
10
  process.on("SIGINT", () => {
9
11
  console.log("Ctrl-C was pressed");
10
12
  process.exit();
@@ -1,14 +1,17 @@
1
1
  ---
2
- name: Spawn a child process and communicate using IPC
2
+ title: Spawn a child process and communicate using IPC
3
+ sidebarTitle: Spawn a child process and communicate using IPC
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Use [`Bun.spawn()`](https://bun.com/docs/api/spawn) to spawn a child process. When spawning a second `bun` process, you can open a direct inter-process communication (IPC) channel between the two processes.
6
8
 
7
- {%callout%}
8
- **Note** — This API is only compatible with other `bun` processes. Use `process.execPath` to get a path to the currently running `bun` executable.
9
- {%/callout%}
9
+ <Note>
10
+ This API is only compatible with other `bun` processes. Use `process.execPath` to get a path to the currently running
11
+ `bun` executable.
12
+ </Note>
10
13
 
11
- ```ts#parent.ts
14
+ ```ts parent.ts icon="/icons/typescript.svg"
12
15
  const child = Bun.spawn(["bun", "child.ts"], {
13
16
  ipc(message) {
14
17
  /**
@@ -22,13 +25,13 @@ const child = Bun.spawn(["bun", "child.ts"], {
22
25
 
23
26
  The parent process can send messages to the subprocess using the `.send()` method on the returned `Subprocess` instance. A reference to the sending subprocess is also available as the second argument in the `ipc` handler.
24
27
 
25
- ```ts#parent.ts
28
+ ```ts parent.ts icon="/icons/typescript.svg"
26
29
  const childProc = Bun.spawn(["bun", "child.ts"], {
27
30
  ipc(message, childProc) {
28
31
  /**
29
32
  * The message received from the sub process
30
33
  **/
31
- childProc.send("Respond to child")
34
+ childProc.send("Respond to child");
32
35
  },
33
36
  });
34
37
 
@@ -39,11 +42,11 @@ childProc.send("I am your father"); // The parent can send messages to the child
39
42
 
40
43
  Meanwhile the child process can send messages to its parent using with `process.send()` and receive messages with `process.on("message")`. This is the same API used for `child_process.fork()` in Node.js.
41
44
 
42
- ```ts#child.ts
45
+ ```ts child.ts icon="/icons/typescript.svg"
43
46
  process.send("Hello from child as string");
44
47
  process.send({ message: "Hello from child as object" });
45
48
 
46
- process.on("message", (message) => {
49
+ process.on("message", message => {
47
50
  // print message from parent
48
51
  console.log(message);
49
52
  });
@@ -53,7 +56,7 @@ process.on("message", (message) => {
53
56
 
54
57
  All messages are serialized using the JSC `serialize` API, which allows for the same set of [transferrable types](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects) supported by `postMessage` and `structuredClone`, including strings, typed arrays, streams, and objects.
55
58
 
56
- ```ts#child.ts
59
+ ```ts child.ts icon="/icons/typescript.svg"
57
60
  // send a string
58
61
  process.send("Hello from child as string");
59
62
 
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Get the process uptime in nanoseconds
2
+ title: Get the process uptime in nanoseconds
3
+ sidebarTitle: Process uptime
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Use `Bun.nanoseconds()` to get the total number of nanoseconds the `bun` process has been alive.
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Listen to OS signals
2
+ title: Listen to OS signals
3
+ sidebarTitle: OS signals
4
+ mode: center
3
5
  ---
4
6
 
5
7
  Bun supports the Node.js `process` global, including the `process.on()` method for listening to OS signals.