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,3 +1,8 @@
1
+ ---
2
+ title: Transpiler
3
+ description: Use Bun's transpiler to transpile JavaScript and TypeScript code
4
+ ---
5
+
1
6
  Bun exposes its internal transpiler via the `Bun.Transpiler` class. To create an instance of Bun's transpiler:
2
7
 
3
8
  ```ts
@@ -6,15 +11,14 @@ const transpiler = new Bun.Transpiler({
6
11
  });
7
12
  ```
8
13
 
14
+ ---
15
+
9
16
  ## `.transformSync()`
10
17
 
11
18
  Transpile code synchronously with the `.transformSync()` method. Modules are not resolved and the code is not executed. The result is a string of vanilla JavaScript code.
12
19
 
13
- <!-- It is synchronous and runs in the same thread as other JavaScript code. -->
14
-
15
- {% codetabs %}
16
-
17
- ```js#Example
20
+ <CodeGroup>
21
+ ```ts transpile.ts icon="/icons/typescript.svg"
18
22
  const transpiler = new Bun.Transpiler({
19
23
  loader: 'tsx',
20
24
  });
@@ -26,9 +30,10 @@ export function Home(props: {title: string}){
26
30
  }`;
27
31
 
28
32
  const result = transpiler.transformSync(code);
29
- ```
30
33
 
31
- ```js#Result
34
+ ````
35
+
36
+ ```ts output
32
37
  import { __require as require } from "bun:wrap";
33
38
  import * as JSX from "react/jsx-dev-runtime";
34
39
  var jsx = require(JSX).jsxDEV;
@@ -43,9 +48,9 @@ export default jsx(
43
48
  undefined,
44
49
  this,
45
50
  );
46
- ```
51
+ ````
47
52
 
48
- {% /codetabs %}
53
+ </CodeGroup>
49
54
 
50
55
  To override the default loader specified in the `new Bun.Transpiler()` constructor, pass a second argument to `.transformSync()`.
51
56
 
@@ -53,11 +58,15 @@ To override the default loader specified in the `new Bun.Transpiler()` construct
53
58
  transpiler.transformSync("<div>hi!</div>", "tsx");
54
59
  ```
55
60
 
56
- {% details summary="Nitty gritty" %}
61
+ <Accordion title="Nitty gritty">
62
+
57
63
  When `.transformSync` is called, the transpiler is run in the same thread as the currently executed code.
58
64
 
59
65
  If a macro is used, it will be run in the same thread as the transpiler, but in a separate event loop from the rest of your application. Currently, globals between macros and regular code are shared, which means it is possible (but not recommended) to share states between macros and regular code. Attempting to use AST nodes outside of a macro is undefined behavior.
60
- {% /details %}
66
+
67
+ </Accordion>
68
+
69
+ ---
61
70
 
62
71
  ## `.transform()`
63
72
 
@@ -75,21 +84,23 @@ Unless you're transpiling _many_ large files, you should probably use `Bun.Trans
75
84
  await transpiler.transform("<div>hi!</div>", "tsx");
76
85
  ```
77
86
 
78
- {% details summary="Nitty gritty" %}
87
+ <Accordion title="Nitty gritty">
88
+
79
89
  The `.transform()` method runs the transpiler in Bun's worker threadpool, so if you run it 100 times, it will run it across `Math.floor($cpu_count * 0.8)` threads, without blocking the main JavaScript thread.
80
90
 
81
91
  If your code uses a macro, it will potentially spawn a new copy of Bun's JavaScript runtime environment in that new thread.
82
- {% /details %}
92
+
93
+ </Accordion>
83
94
 
84
95
  ## `.scan()`
85
96
 
86
97
  The `Transpiler` instance can also scan some source code and return a list of its imports and exports, plus additional metadata about each one. [Type-only](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) imports and exports are ignored.
87
98
 
88
- {% codetabs %}
99
+ <CodeGroup>
89
100
 
90
- ```ts#Example
101
+ ```ts example.ts icon="/icons/typescript.svg"
91
102
  const transpiler = new Bun.Transpiler({
92
- loader: 'tsx',
103
+ loader: "tsx",
93
104
  });
94
105
 
95
106
  const code = `
@@ -104,11 +115,9 @@ export const name = "hello";
104
115
  const result = transpiler.scan(code);
105
116
  ```
106
117
 
107
- ```json#Output
118
+ ```json output
108
119
  {
109
- "exports": [
110
- "name"
111
- ],
120
+ "exports": ["name"],
112
121
  "imports": [
113
122
  {
114
123
  "kind": "import-statement",
@@ -126,7 +135,7 @@ const result = transpiler.scan(code);
126
135
  }
127
136
  ```
128
137
 
129
- {% /codetabs %}
138
+ </CodeGroup>
130
139
 
131
140
  Each import in the `imports` array has a `path` and `kind`. Bun categories imports into the following kinds:
132
141
 
@@ -136,19 +145,18 @@ Each import in the `imports` array has a `path` and `kind`. Bun categories impor
136
145
  - `dynamic-import`: `import('./loader')`
137
146
  - `import-rule`: `@import 'foo.css'`
138
147
  - `url-token`: `url('./foo.png')`
139
- <!-- - `internal`: `import {foo} from 'bun:internal'`
140
- - `entry-point-build`: `import {foo} from 'bun:entry'`
141
- - `entry-point-run`: `bun ./mymodule` -->
148
+
149
+ ---
142
150
 
143
151
  ## `.scanImports()`
144
152
 
145
153
  For performance-sensitive code, you can use the `.scanImports()` method to get a list of imports. It's faster than `.scan()` (especially for large files) but marginally less accurate due to some performance optimizations.
146
154
 
147
- {% codetabs %}
155
+ <CodeGroup>
148
156
 
149
- ```ts#Example
157
+ ```ts example.ts icon="/icons/typescript.svg"
150
158
  const transpiler = new Bun.Transpiler({
151
- loader: 'tsx',
159
+ loader: "tsx",
152
160
  });
153
161
 
154
162
  const code = `
@@ -163,26 +171,30 @@ export const name = "hello";
163
171
  const result = transpiler.scanImports(code);
164
172
  ```
165
173
 
166
- ```json#Results
174
+ ```json results icon="file-json"
167
175
  [
168
176
  {
169
- kind: "import-statement",
170
- path: "react"
171
- }, {
172
- kind: "require-call",
173
- path: "./cjs.js"
174
- }, {
175
- kind: "dynamic-import",
176
- path: "./loader"
177
+ "kind": "import-statement",
178
+ "path": "react"
179
+ },
180
+ {
181
+ "kind": "require-call",
182
+ "path": "./cjs.js"
183
+ },
184
+ {
185
+ "kind": "dynamic-import",
186
+ "path": "./loader"
177
187
  }
178
188
  ]
179
189
  ```
180
190
 
181
- {% /codetabs %}
191
+ </CodeGroup>
192
+
193
+ ---
182
194
 
183
195
  ## Reference
184
196
 
185
- ```ts
197
+ ```ts See Typescript Definitions expandable
186
198
  type Loader = "jsx" | "js" | "ts" | "tsx";
187
199
 
188
200
  interface TranspilerOptions {
@@ -1,7 +1,12 @@
1
+ ---
2
+ title: "TypeScript"
3
+ description: "Using TypeScript with Bun, including type definitions and compiler options"
4
+ ---
5
+
1
6
  To install the TypeScript definitions for Bun's built-in APIs, install `@types/bun`.
2
7
 
3
8
  ```sh
4
- $ bun add -d @types/bun # dev dependency
9
+ bun add -d @types/bun # dev dependency
5
10
  ```
6
11
 
7
12
  At this point, you should be able to reference the `Bun` global in your TypeScript files without seeing errors in your editor.
@@ -49,5 +54,5 @@ Bun supports things like top-level await, JSX, and extensioned `.ts` imports, wh
49
54
  If you run `bun init` in a new directory, this `tsconfig.json` will be generated for you. (The stricter flags are disabled by default.)
50
55
 
51
56
  ```sh
52
- $ bun init
57
+ bun init
53
58
  ```
@@ -1,8 +1,13 @@
1
+ ---
2
+ title: Utils
3
+ description: Use Bun's utility functions to work with the runtime
4
+ ---
5
+
1
6
  ## `Bun.version`
2
7
 
3
8
  A `string` containing the version of the `bun` CLI that is currently running.
4
9
 
5
- ```ts
10
+ ```ts terminal icon="terminal"
6
11
  Bun.version;
7
12
  // => "0.6.4"
8
13
  ```
@@ -11,7 +16,7 @@ Bun.version;
11
16
 
12
17
  The git commit of [Bun](https://github.com/oven-sh/bun) that was compiled to create the current `bun` CLI.
13
18
 
14
- ```ts
19
+ ```ts terminal icon="terminal"
15
20
  Bun.revision;
16
21
  // => "f02561530fda1ee9396f51c8bc99b38716e38296"
17
22
  ```
@@ -24,7 +29,7 @@ An alias for `process.env`.
24
29
 
25
30
  An absolute path to the entrypoint of the current program (the file that was executed with `bun run`).
26
31
 
27
- ```ts#script.ts
32
+ ```ts script.ts
28
33
  Bun.main;
29
34
  // /path/to/script.ts
30
35
  ```
@@ -127,17 +132,11 @@ The final 8 bytes of the UUID are a cryptographically secure random value. It us
127
132
 
128
133
  ```ts
129
134
  namespace Bun {
130
- function randomUUIDv7(
131
- encoding?: "hex" | "base64" | "base64url" = "hex",
132
- timestamp?: number = Date.now(),
133
- ): string;
135
+ function randomUUIDv7(encoding?: "hex" | "base64" | "base64url" = "hex", timestamp?: number = Date.now()): string;
134
136
  /**
135
137
  * If you pass "buffer", you get a 16-byte buffer instead of a string.
136
138
  */
137
- function randomUUIDv7(
138
- encoding: "buffer",
139
- timestamp?: number = Date.now(),
140
- ): Buffer;
139
+ function randomUUIDv7(encoding: "buffer", timestamp?: number = Date.now()): Buffer;
141
140
 
142
141
  // If you only pass a timestamp, you get a hex string
143
142
  function randomUUIDv7(timestamp?: number = Date.now()): string;
@@ -146,13 +145,13 @@ namespace Bun {
146
145
 
147
146
  You can optionally set encoding to `"buffer"` to get a 16-byte buffer instead of a string. This can sometimes avoid string conversion overhead.
148
147
 
149
- ```ts#buffer.ts
148
+ ```ts buffer.ts
150
149
  const buffer = Bun.randomUUIDv7("buffer");
151
150
  ```
152
151
 
153
152
  `base64` and `base64url` encodings are also supported when you want a slightly shorter string.
154
153
 
155
- ```ts#base64.ts
154
+ ```ts base64.ts
156
155
  const base64 = Bun.randomUUIDv7("base64");
157
156
  const base64url = Bun.randomUUIDv7("base64url");
158
157
  ```
@@ -200,9 +199,7 @@ test("peek", () => {
200
199
  // If we peek a rejected promise, it:
201
200
  // - returns the error
202
201
  // - does not mark the promise as handled
203
- const rejected = Promise.reject(
204
- new Error("Successfully tested promise rejection"),
205
- );
202
+ const rejected = Promise.reject(new Error("Successfully tested promise rejection"));
206
203
  expect(peek(rejected).message).toBe("Successfully tested promise rejection");
207
204
  });
208
205
  ```
@@ -234,11 +231,11 @@ const currentFile = import.meta.url;
234
231
  Bun.openInEditor(currentFile);
235
232
  ```
236
233
 
237
- You can override this via the `debug.editor` setting in your [`bunfig.toml`](https://bun.com/docs/runtime/bunfig).
234
+ You can override this via the `debug.editor` setting in your [`bunfig.toml`](/runtime/bunfig).
238
235
 
239
- ```toml-diff#bunfig.toml
240
- + [debug]
241
- + editor = "code"
236
+ ```toml bunfig.toml
237
+ [debug] // [!code ++]
238
+ editor = "code" // [!code ++]
242
239
  ```
243
240
 
244
241
  Or specify an editor with the `editor` param. You can also specify a line and column number.
@@ -310,7 +307,9 @@ This function is optimized for large input. On an M1X, it processes 480 MB/s -
310
307
  20 GB/s, depending on how much data is being escaped and whether there is non-ascii
311
308
  text. Non-string types will be converted to a string before escaping.
312
309
 
313
- ## `Bun.stringWidth()` ~6,756x faster `string-width` alternative
310
+ ## `Bun.stringWidth()`
311
+
312
+ <Note>~6,756x faster `string-width` alternative</Note>
314
313
 
315
314
  Get the column count of a string as it would be displayed in a terminal.
316
315
  Supports ANSI escape codes, emoji, and wide characters.
@@ -352,7 +351,7 @@ npm/string-width 500 chars ascii 249,710 ns/iter (239,970 ns …
352
351
 
353
352
  To make `Bun.stringWidth` fast, we've implemented it in Zig using optimized SIMD instructions, accounting for Latin1, UTF-16, and UTF-8 encodings. It passes `string-width`'s tests.
354
353
 
355
- {% details summary="View full benchmark" %}
354
+ <Accordion title="View full benchmark">
356
355
 
357
356
  As a reminder, 1 nanosecond (ns) is 1 billionth of a second. Here's a quick reference for converting between units:
358
357
 
@@ -362,7 +361,7 @@ As a reminder, 1 nanosecond (ns) is 1 billionth of a second. Here's a quick refe
362
361
  | µs | 1,000 |
363
362
  | ms | 1 |
364
363
 
365
- ```js
364
+ ```bash terminal icon="terminal"
366
365
  ❯ bun string-width.mjs
367
366
  cpu: 13th Gen Intel(R) Core(TM) i9-13900
368
367
  runtime: bun 1.0.29 (x64-linux)
@@ -391,7 +390,7 @@ Bun.stringWidth 19,000 chars ansi+emoji+ascii 114.06 µs/iter (112.86 µs … 1
391
390
  Bun.stringWidth 95,000 chars ansi+emoji+ascii 572.69 µs/iter (565.52 µs … 607.22 µs) 572.45 µs 604.86 µs 605.21 µs
392
391
  ```
393
392
 
394
- ```ts
393
+ ```bash terminal icon="terminal"
395
394
  ❯ node string-width.mjs
396
395
  cpu: 13th Gen Intel(R) Core(TM) i9-13900
397
396
  runtime: node v21.4.0 (x64-linux)
@@ -420,11 +419,11 @@ npm/string-width 19,000 chars ansi+emoji+ascii 27.19 ms/iter (26.89 ms … 2
420
419
  npm/string-width 95,000 chars ansi+emoji+ascii 3.68 s/iter (3.66 s … 3.7 s) 3.69 s 3.7 s 3.7 s
421
420
  ```
422
421
 
423
- {% /details %}
422
+ </Accordion>
424
423
 
425
424
  TypeScript definition:
426
425
 
427
- ```ts
426
+ ```ts expandable
428
427
  namespace Bun {
429
428
  export function stringWidth(
430
429
  /**
@@ -449,7 +448,7 @@ namespace Bun {
449
448
  }
450
449
  ```
451
450
 
452
- <!-- ## `Bun.enableANSIColors()` -->
451
+ ---
453
452
 
454
453
  ## `Bun.fileURLToPath()`
455
454
 
@@ -460,6 +459,8 @@ const path = Bun.fileURLToPath(new URL("file:///foo/bar.txt"));
460
459
  console.log(path); // "/foo/bar.txt"
461
460
  ```
462
461
 
462
+ ---
463
+
463
464
  ## `Bun.pathToFileURL()`
464
465
 
465
466
  Converts an absolute path to a `file://` URL.
@@ -469,7 +470,7 @@ const url = Bun.pathToFileURL("/foo/bar.txt");
469
470
  console.log(url); // "file:///foo/bar.txt"
470
471
  ```
471
472
 
472
- <!-- Bun.hash; -->
473
+ ---
473
474
 
474
475
  ## `Bun.gzipSync()`
475
476
 
@@ -485,9 +486,9 @@ compressed; // => Uint8Array(30)
485
486
 
486
487
  Optionally, pass a parameters object as the second argument:
487
488
 
488
- {% details summary="zlib compression options"%}
489
+ <Accordion title="zlib compression options">
489
490
 
490
- ```ts
491
+ ```ts expandable
491
492
  export type ZlibCompressionOptions = {
492
493
  /**
493
494
  * The compression level to use. Must be between `-1` and `9`.
@@ -558,7 +559,9 @@ export type ZlibCompressionOptions = {
558
559
  };
559
560
  ```
560
561
 
561
- {% /details %}
562
+ </Accordion>
563
+
564
+ ---
562
565
 
563
566
  ## `Bun.gunzipSync()`
564
567
 
@@ -574,6 +577,8 @@ dec.decode(uncompressed);
574
577
  // => "hellohellohello..."
575
578
  ```
576
579
 
580
+ ---
581
+
577
582
  ## `Bun.deflateSync()`
578
583
 
579
584
  Compresses a `Uint8Array` using zlib's DEFLATE algorithm.
@@ -588,6 +593,8 @@ compressed; // => Uint8Array(12)
588
593
 
589
594
  The second argument supports the same set of configuration options as [`Bun.gzipSync`](#bun-gzipsync).
590
595
 
596
+ ---
597
+
591
598
  ## `Bun.inflateSync()`
592
599
 
593
600
  Decompresses a `Uint8Array` using zlib's INFLATE algorithm.
@@ -602,6 +609,8 @@ dec.decode(decompressed);
602
609
  // => "hellohellohello..."
603
610
  ```
604
611
 
612
+ ---
613
+
605
614
  ## `Bun.zstdCompress()` / `Bun.zstdCompressSync()`
606
615
 
607
616
  Compresses a `Uint8Array` using the Zstandard algorithm.
@@ -636,6 +645,8 @@ dec.decode(decompressedSync);
636
645
  // => "hellohellohello..."
637
646
  ```
638
647
 
648
+ ---
649
+
639
650
  ## `Bun.inspect()`
640
651
 
641
652
  Serializes an object to a `string` exactly as it would be printed by `console.log`.
@@ -650,7 +661,7 @@ const str = Bun.inspect(arr);
650
661
  // => "Uint8Array(3) [ 1, 2, 3 ]"
651
662
  ```
652
663
 
653
- ## `Bun.inspect.custom`
664
+ ### `Bun.inspect.custom`
654
665
 
655
666
  This is the symbol that Bun uses to implement `Bun.inspect`. You can override this to customize how your objects are printed. It is identical to `util.inspect.custom` in Node.js.
656
667
 
@@ -665,7 +676,7 @@ const foo = new Foo();
665
676
  console.log(foo); // => "foo"
666
677
  ```
667
678
 
668
- ## `Bun.inspect.table(tabularData, properties, options)`
679
+ ### `Bun.inspect.table(tabularData, properties, options)`
669
680
 
670
681
  Format tabular data into a string. Like [`console.table`](https://developer.mozilla.org/en-US/docs/Web/API/console/table_static), except it returns a string rather than printing to the console.
671
682
 
@@ -724,6 +735,8 @@ console.log(
724
735
  );
725
736
  ```
726
737
 
738
+ ---
739
+
727
740
  ## `Bun.nanoseconds()`
728
741
 
729
742
  Returns the number of nanoseconds since the current `bun` process started, as a `number`. Useful for high-precision timing and benchmarking.
@@ -733,6 +746,8 @@ Bun.nanoseconds();
733
746
  // => 7288958
734
747
  ```
735
748
 
749
+ ---
750
+
736
751
  ## `Bun.readableStreamTo*()`
737
752
 
738
753
  Bun implements a set of convenience functions for asynchronously consuming the body of a `ReadableStream` and converting it to various binary formats.
@@ -767,6 +782,8 @@ await Bun.readableStreamToFormData(stream);
767
782
  await Bun.readableStreamToFormData(stream, multipartFormBoundary);
768
783
  ```
769
784
 
785
+ ---
786
+
770
787
  ## `Bun.resolveSync()`
771
788
 
772
789
  Resolves a file path or module specifier using Bun's internal module resolution algorithm. The first argument is the path to resolve, and the second argument is the "root". If no match is found, an `Error` is thrown.
@@ -792,21 +809,11 @@ To resolve relative to the directory containing the current file, pass `import.m
792
809
  Bun.resolveSync("./foo.ts", import.meta.dir);
793
810
  ```
794
811
 
795
- ## `serialize` & `deserialize` in `bun:jsc`
812
+ ---
796
813
 
797
- To save a JavaScript value into an ArrayBuffer & back, use `serialize` and `deserialize` from the `"bun:jsc"` module.
814
+ ## `Bun.stripANSI()`
798
815
 
799
- ```js
800
- import { serialize, deserialize } from "bun:jsc";
801
-
802
- const buf = serialize({ foo: "bar" });
803
- const obj = deserialize(buf);
804
- console.log(obj); // => { foo: "bar" }
805
- ```
806
-
807
- Internally, [`structuredClone`](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone) and [`postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) serialize and deserialize the same way. This exposes the underlying [HTML Structured Clone Algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) to JavaScript as an ArrayBuffer.
808
-
809
- ## `Bun.stripANSI()` ~6-57x faster `strip-ansi` alternative
816
+ <Note>~6-57x faster `strip-ansi` alternative</Note>
810
817
 
811
818
  `Bun.stripANSI(text: string): string`
812
819
 
@@ -824,8 +831,11 @@ console.log(Bun.stripANSI(formatted)); // => "Bold and underlined"
824
831
 
825
832
  `Bun.stripANSI` is significantly faster than the popular [`strip-ansi`](https://www.npmjs.com/package/strip-ansi) npm package:
826
833
 
827
- ```js
828
- > bun bench/snippets/strip-ansi.mjs
834
+ ```bash terminal icon="terminal"
835
+ bun bench/snippets/strip-ansi.mjs
836
+ ```
837
+
838
+ ```txt
829
839
  cpu: Apple M3 Max
830
840
  runtime: bun 1.2.21 (arm64-darwin)
831
841
 
@@ -844,8 +854,11 @@ Bun.stripANSI 212,992 chars long-ansi 227.65 µs/iter 234.50 µs
844
854
  (216.46 µs … 401.92 µs) 262.25 µs
845
855
  ```
846
856
 
847
- ```js
848
- > node bench/snippets/strip-ansi.mjs
857
+ ```bash terminal icon="terminal"
858
+ node bench/snippets/strip-ansi.mjs
859
+ ```
860
+
861
+ ```txt
849
862
  cpu: Apple M3 Max
850
863
  runtime: node 24.6.0 (arm64-darwin)
851
864
 
@@ -865,6 +878,24 @@ npm/strip-ansi 212,992 chars long-ansi 1.36 ms/iter 1.38 ms
865
878
 
866
879
  ```
867
880
 
881
+ ---
882
+
883
+ ## `serialize` & `deserialize` in `bun:jsc`
884
+
885
+ To save a JavaScript value into an ArrayBuffer & back, use `serialize` and `deserialize` from the `"bun:jsc"` module.
886
+
887
+ ```js
888
+ import { serialize, deserialize } from "bun:jsc";
889
+
890
+ const buf = serialize({ foo: "bar" });
891
+ const obj = deserialize(buf);
892
+ console.log(obj); // => { foo: "bar" }
893
+ ```
894
+
895
+ Internally, [`structuredClone`](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone) and [`postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) serialize and deserialize the same way. This exposes the underlying [HTML Structured Clone Algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) to JavaScript as an ArrayBuffer.
896
+
897
+ ---
898
+
868
899
  ## `estimateShallowMemoryUsageOf` in `bun:jsc`
869
900
 
870
901
  The `estimateShallowMemoryUsageOf` function returns a best-effort estimate of the memory usage of an object in bytes, excluding the memory usage of properties or other objects it references. For accurate per-object memory usage, use `Bun.generateHeapSnapshot`.