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,10 +1,19 @@
1
+ ---
2
+ title: Streams
3
+ description: Use Bun's streams API to work with binary data without loading it all into memory at once
4
+ ---
5
+
1
6
  Streams are an important abstraction for working with binary data without loading it all into memory at once. They are commonly used for reading and writing files, sending and receiving network requests, and processing large amounts of data.
2
7
 
3
8
  Bun implements the Web APIs [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) and [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream).
4
9
 
5
- {% callout %}
6
- Bun also implements the `node:stream` module, including [`Readable`](https://nodejs.org/api/stream.html#stream_readable_streams), [`Writable`](https://nodejs.org/api/stream.html#stream_writable_streams), and [`Duplex`](https://nodejs.org/api/stream.html#stream_duplex_and_transform_streams). For complete documentation, refer to the [Node.js docs](https://nodejs.org/api/stream.html).
7
- {% /callout %}
10
+ <Note>
11
+ Bun also implements the `node:stream` module, including
12
+ [`Readable`](https://nodejs.org/api/stream.html#stream_readable_streams),
13
+ [`Writable`](https://nodejs.org/api/stream.html#stream_writable_streams), and
14
+ [`Duplex`](https://nodejs.org/api/stream.html#stream_duplex_and_transform_streams). For complete documentation, refer
15
+ to the [Node.js docs](https://nodejs.org/api/stream.html).
16
+ </Note>
8
17
 
9
18
  To create a simple `ReadableStream`:
10
19
 
@@ -23,28 +32,19 @@ The contents of a `ReadableStream` can be read chunk-by-chunk with `for await` s
23
32
  ```ts
24
33
  for await (const chunk of stream) {
25
34
  console.log(chunk);
26
- // => "hello"
27
- // => "world"
28
35
  }
29
- ```
30
-
31
- `ReadableStream` also provides convenience methods for consuming the entire stream:
32
-
33
- ```ts
34
- const stream = new ReadableStream({
35
- start(controller) {
36
- controller.enqueue("hello world");
37
- controller.close();
38
- },
39
- });
40
36
 
41
- const data = await stream.text(); // => "hello world"
42
- // Also available: .json(), .bytes(), .blob()
37
+ // hello
38
+ // world
43
39
  ```
44
40
 
41
+ ---
42
+
45
43
  ## Direct `ReadableStream`
46
44
 
47
- Bun implements an optimized version of `ReadableStream` that avoid unnecessary data copying & queue management logic. With a traditional `ReadableStream`, chunks of data are _enqueued_. Each chunk is copied into a queue, where it sits until the stream is ready to send more data.
45
+ Bun implements an optimized version of `ReadableStream` that avoid unnecessary data copying & queue management logic.
46
+
47
+ With a traditional `ReadableStream`, chunks of data are _enqueued_. Each chunk is copied into a queue, where it sits until the stream is ready to send more data.
48
48
 
49
49
  ```ts
50
50
  const stream = new ReadableStream({
@@ -60,7 +60,7 @@ With a direct `ReadableStream`, chunks of data are written directly to the strea
60
60
 
61
61
  ```ts
62
62
  const stream = new ReadableStream({
63
- type: "direct",
63
+ type: "direct", // [!code ++]
64
64
  pull(controller) {
65
65
  controller.write("hello");
66
66
  controller.write("world");
@@ -70,6 +70,8 @@ const stream = new ReadableStream({
70
70
 
71
71
  When using a direct `ReadableStream`, all chunk queueing is handled by the destination. The consumer of the stream receives exactly what is passed to `controller.write()`, without any encoding or modification.
72
72
 
73
+ ---
74
+
73
75
  ## Async generator streams
74
76
 
75
77
  Bun also supports async generator functions as a source for `Response` and `Request`. This is an easy way to create a `ReadableStream` that fetches data from an asynchronous source.
@@ -111,6 +113,8 @@ const response = new Response({
111
113
  await response.text(); // "hello"
112
114
  ```
113
115
 
116
+ ---
117
+
114
118
  ## `Bun.ArrayBufferSink`
115
119
 
116
120
  The `Bun.ArrayBufferSink` class is a fast incremental writer for constructing an `ArrayBuffer` of unknown size.
@@ -130,10 +134,10 @@ sink.end();
130
134
 
131
135
  To instead retrieve the data as a `Uint8Array`, pass the `asUint8Array` option to the `start` method.
132
136
 
133
- ```ts-diff
137
+ ```ts
134
138
  const sink = new Bun.ArrayBufferSink();
135
139
  sink.start({
136
- + asUint8Array: true
140
+ asUint8Array: true, // [!code ++]
137
141
  });
138
142
 
139
143
  sink.write("h");
@@ -161,7 +165,7 @@ Once `.end()` is called, no more data can be written to the `ArrayBufferSink`. H
161
165
  ```ts
162
166
  const sink = new Bun.ArrayBufferSink();
163
167
  sink.start({
164
- stream: true,
168
+ stream: true, // [!code ++]
165
169
  });
166
170
 
167
171
  sink.write("h");
@@ -183,13 +187,15 @@ To manually set the size of the internal buffer in bytes, pass a value for `high
183
187
  ```ts
184
188
  const sink = new Bun.ArrayBufferSink();
185
189
  sink.start({
186
- highWaterMark: 1024 * 1024, // 1 MB
190
+ highWaterMark: 1024 * 1024, // 1 MB // [!code ++]
187
191
  });
188
192
  ```
189
193
 
190
- {% details summary="Reference" %}
194
+ ---
191
195
 
192
- ```ts
196
+ ## Reference
197
+
198
+ ```ts See Typescript Definitions expandable
193
199
  /**
194
200
  * Fast incremental writer that becomes an `ArrayBuffer` on end().
195
201
  */
@@ -210,9 +216,7 @@ export class ArrayBufferSink {
210
216
  stream?: boolean;
211
217
  }): void;
212
218
 
213
- write(
214
- chunk: string | ArrayBufferView | ArrayBuffer | SharedArrayBuffer,
215
- ): number;
219
+ write(chunk: string | ArrayBufferView | ArrayBuffer | SharedArrayBuffer): number;
216
220
  /**
217
221
  * Flush the internal buffer
218
222
  *
@@ -226,5 +230,3 @@ export class ArrayBufferSink {
226
230
  end(): ArrayBuffer | Uint8Array<ArrayBuffer>;
227
231
  }
228
232
  ```
229
-
230
- {% /details %}
@@ -1,6 +1,14 @@
1
- {% callout %}
2
- **Note** — You don’t need `bun create` to use Bun. You don’t need any configuration at all. This command exists to make getting started a bit quicker and easier.
3
- {% /callout %}
1
+ ---
2
+ title: bun create
3
+ description: Create a new Bun project from a React component, a `create-<template>` npm package, a GitHub repo, or a local template
4
+ ---
5
+
6
+ <Note>
7
+ You don't need `bun create` to use Bun. You don't need any configuration at all. This command exists to make getting
8
+ started a bit quicker and easier.
9
+ </Note>
10
+
11
+ ---
4
12
 
5
13
  Template a new Bun project with `bun create`. This is a flexible command that can be used to create a new project from a React component, a `create-<template>` npm package, a GitHub repo, or a local template.
6
14
 
@@ -14,17 +22,25 @@ If you're looking to create a brand new empty project, use [`bun init`](https://
14
22
  $ bun create ./MyComponent.jsx # .tsx also supported
15
23
  ```
16
24
 
17
- {% raw %}
18
-
19
- <video style="aspect-ratio: 2062 / 1344; width: 100%; height: 100%; object-fit: contain;" loop autoplay muted playsinline>
20
- <source src="/bun-create-shadcn.mp4" style="width: 100%; height: 100%; object-fit: contain;" type="video/mp4">
21
- </video>
22
-
23
- {% /raw %}
24
-
25
- {% callout %}
25
+ <Frame>
26
+ <video
27
+ style={{ aspectRatio: "2062 / 1344", width: "100%", height: "100%", objectFit: "contain" }}
28
+ loop
29
+ autoPlay
30
+ muted
31
+ playsInline
32
+ >
33
+ <source
34
+ src="/images/bun-create-shadcn.mp4"
35
+ style={{ width: "100%", height: "100%", objectFit: "contain" }}
36
+ type="video/mp4"
37
+ />
38
+ </video>
39
+ </Frame>
40
+
41
+ <Note>
26
42
  🚀 **Create React App Successor** — `bun create <component>` provides everything developers loved about Create React App, but with modern tooling, faster builds, and backend support.
27
- {% /callout %}
43
+ </Note>
28
44
 
29
45
  #### How this works
30
46
 
@@ -47,7 +63,7 @@ When you run `bun create <component>`, Bun:
47
63
 
48
64
  When you run `bun create <component>`, Bun scans your JSX/TSX file for TailwindCSS class names (and any files it imports). If it detects TailwindCSS class names, it will add the following dependencies to your `package.json`:
49
65
 
50
- ```json#package.json
66
+ ```json package.json icon="file-code"
51
67
  {
52
68
  "dependencies": {
53
69
  "tailwindcss": "^4",
@@ -58,14 +74,14 @@ When you run `bun create <component>`, Bun scans your JSX/TSX file for TailwindC
58
74
 
59
75
  We also configure `bunfig.toml` to use Bun's TailwindCSS plugin with `Bun.serve()`
60
76
 
61
- ```toml#bunfig.toml
77
+ ```toml bunfig.toml icon="settings"
62
78
  [serve.static]
63
79
  plugins = ["bun-plugin-tailwind"]
64
80
  ```
65
81
 
66
82
  And a `${component}.css` file with `@import "tailwindcss";` at the top:
67
83
 
68
- ```css#MyComponent.css
84
+ ```css MyComponent.css icon="file-code"
69
85
  @import "tailwindcss";
70
86
  ```
71
87
 
@@ -77,9 +93,9 @@ And a `${component}.css` file with `@import "tailwindcss";` at the top:
77
93
 
78
94
  If it finds any, it runs:
79
95
 
80
- ```bash
96
+ ```bash terminal icon="terminal"
81
97
  # Assuming bun detected imports to @/components/ui/accordion and @/components/ui/button
82
- $ bunx shadcn@canary add accordion button # and any other components
98
+ bunx shadcn@canary add accordion button # and any other components
83
99
  ```
84
100
 
85
101
  Since `shadcn/ui` itself uses TailwindCSS, `bun create` also adds the necessary TailwindCSS dependencies to your `package.json` and configures `bunfig.toml` to use Bun's TailwindCSS plugin with `Bun.serve()` as described above.
@@ -95,15 +111,15 @@ Additionally, we setup the following:
95
111
 
96
112
  ## From `npm`
97
113
 
98
- ```sh
99
- $ bun create <template> [<destination>]
114
+ ```sh terminal icon="terminal"
115
+ bun create <template> [<destination>]
100
116
  ```
101
117
 
102
118
  Assuming you don't have a [local template](#from-a-local-template) with the same name, this command will download and execute the `create-<template>` package from npm. The following two commands will behave identically:
103
119
 
104
- ```sh
105
- $ bun create remix
106
- $ bunx create-remix
120
+ ```sh terminal icon="terminal"
121
+ bun create remix
122
+ bunx create-remix
107
123
  ```
108
124
 
109
125
  Refer to the documentation of the associated `create-<template>` package for complete documentation and usage instructions.
@@ -112,16 +128,16 @@ Refer to the documentation of the associated `create-<template>` package for com
112
128
 
113
129
  This will download the contents of the GitHub repo to disk.
114
130
 
115
- ```bash
116
- $ bun create <user>/<repo>
117
- $ bun create github.com/<user>/<repo>
131
+ ```bash terminal icon="terminal"
132
+ bun create <user>/<repo>
133
+ bun create github.com/<user>/<repo>
118
134
  ```
119
135
 
120
136
  Optionally specify a name for the destination folder. If no destination is specified, the repo name will be used.
121
137
 
122
- ```bash
123
- $ bun create <user>/<repo> mydir
124
- $ bun create github.com/<user>/<repo> mydir
138
+ ```bash terminal icon="terminal"
139
+ bun create <user>/<repo> mydir
140
+ bun create github.com/<user>/<repo> mydir
125
141
  ```
126
142
 
127
143
  Bun will perform the following steps:
@@ -132,77 +148,33 @@ Bun will perform the following steps:
132
148
  - Initialize a fresh Git repo. Opt out with the `--no-git` flag.
133
149
  - Run the template's configured `start` script, if defined.
134
150
 
135
- {% callout %}
136
- By default Bun will _not overwrite_ any existing files. Use the `--force` flag to overwrite existing files.
137
- {% /callout %}
138
-
139
- <!-- ### Official templates
140
-
141
- The following official templates are available.
142
-
143
- ```bash
144
- bun create next ./myapp
145
- bun create react ./myapp
146
- bun create svelte-kit ./myapp
147
- bun create elysia ./myapp
148
- bun create hono ./myapp
149
- bun create kingworld ./myapp
150
- ```
151
-
152
- Each of these corresponds to a directory in the [bun-community/create-templates](https://github.com/bun-community/create-templates) repo. If you think a major framework is missing, please open a PR there. This list will change over time as additional examples are added. To see an up-to-date list, run `bun create` with no arguments.
153
-
154
- ```bash
155
- $ bun create
156
- Welcome to bun! Create a new project by pasting any of the following:
157
- <list of templates>
158
- ```
159
-
160
- {% callout %}
161
- ⚡️ **Speed** — At the time of writing, `bun create react app` runs ~11x faster on a M1 Macbook Pro than `yarn create react-app app`.
162
- {% /callout %} -->
163
-
164
- <!-- ### GitHub repos
165
-
166
- A template of the form `<username>/<repo>` will be downloaded from GitHub.
167
-
168
- ```bash
169
- $ bun create ahfarmer/calculator ./myapp
170
- ```
171
-
172
- Complete GitHub URLs will also work:
173
-
174
- ```bash
175
- $ bun create github.com/ahfarmer/calculator ./myapp
176
- $ bun create https://github.com/ahfarmer/calculator ./myapp
177
- ```
178
-
179
- Bun installs the files as they currently exist current default branch (usually `main` or `master`). Unlike `git clone` it doesn't download the commit history or configure a remote. -->
151
+ <Note>By default Bun will _not overwrite_ any existing files. Use the `--force` flag to overwrite existing files.</Note>
180
152
 
181
153
  ## From a local template
182
154
 
183
- {% callout %}
184
- **⚠️ Warning** — Unlike remote templates, running `bun create` with a local template will delete the entire destination folder if it already exists! Be careful.
185
- {% /callout %}
155
+ <Warning>
156
+ Unlike remote templates, running `bun create` with a local template will delete the entire destination folder if it
157
+ already exists! Be careful.
158
+ </Warning>
159
+
186
160
  Bun's templater can be extended to support custom templates defined on your local file system. These templates should live in one of the following directories:
187
161
 
188
162
  - `$HOME/.bun-create/<name>`: global templates
189
163
  - `<project root>/.bun-create/<name>`: project-specific templates
190
164
 
191
- {% callout %}
192
- **Note** — You can customize the global template path by setting the `BUN_CREATE_DIR` environment variable.
193
- {% /callout %}
165
+ <Note>You can customize the global template path by setting the `BUN_CREATE_DIR` environment variable.</Note>
194
166
 
195
167
  To create a local template, navigate to `$HOME/.bun-create` and create a new directory with the desired name of your template.
196
168
 
197
169
  ```bash
198
- $ cd $HOME/.bun-create
199
- $ mkdir foo
200
- $ cd foo
170
+ cd $HOME/.bun-create
171
+ mkdir foo
172
+ cd foo
201
173
  ```
202
174
 
203
175
  Then, create a `package.json` file in that directory with the following contents:
204
176
 
205
- ```json
177
+ ```json package.json icon="file-json"
206
178
  {
207
179
  "name": "foo"
208
180
  }
@@ -214,7 +186,7 @@ You can run `bun create foo` elsewhere on your file system to verify that Bun is
214
186
 
215
187
  You can specify pre- and post-install setup scripts in the `"bun-create"` section of your local template's `package.json`.
216
188
 
217
- ```json
189
+ ```json package.json icon="file-json"
218
190
  {
219
191
  "name": "@bun-examples/simplereact",
220
192
  "version": "0.0.1",
@@ -233,19 +205,10 @@ You can specify pre- and post-install setup scripts in the `"bun-create"` sectio
233
205
 
234
206
  The following fields are supported. Each of these can correspond to a string or array of strings. An array of commands will be executed in order.
235
207
 
236
- {% table %}
237
-
238
- ---
239
-
240
- - `postinstall`
241
- - runs after installing dependencies
242
-
243
- ---
244
-
245
- - `preinstall`
246
- - runs before installing dependencies
247
-
248
- {% /table %}
208
+ | Field | Description |
209
+ | ------------- | ----------------------------------- |
210
+ | `postinstall` | runs after installing dependencies |
211
+ | `preinstall` | runs before installing dependencies |
249
212
 
250
213
  After cloning a template, `bun create` will automatically remove the `"bun-create"` section from `package.json` before writing it to the destination folder.
251
214
 
@@ -253,53 +216,21 @@ After cloning a template, `bun create` will automatically remove the `"bun-creat
253
216
 
254
217
  ### CLI flags
255
218
 
256
- {% table %}
257
-
258
- - Flag
259
- - Description
260
-
261
- ---
262
-
263
- - `--force`
264
- - Overwrite existing files
265
-
266
- ---
267
-
268
- - `--no-install`
269
- - Skip installing `node_modules` & tasks
270
-
271
- ---
272
-
273
- - `--no-git`
274
- - Don’t initialize a git repository
275
-
276
- ---
277
-
278
- - `--open`
279
- - Start & open in-browser after finish
280
-
281
- {% /table %}
219
+ | Flag | Description |
220
+ | -------------- | -------------------------------------- |
221
+ | `--force` | Overwrite existing files |
222
+ | `--no-install` | Skip installing `node_modules` & tasks |
223
+ | `--no-git` | Don't initialize a git repository |
224
+ | `--open` | Start & open in-browser after finish |
282
225
 
283
226
  ### Environment variables
284
227
 
285
- {% table %}
286
-
287
- - Name
288
- - Description
289
-
290
- ---
291
-
292
- - `GITHUB_API_DOMAIN`
293
- - If you’re using a GitHub enterprise or a proxy, you can customize the GitHub domain Bun pings for downloads
294
-
295
- ---
296
-
297
- - `GITHUB_TOKEN` (or `GITHUB_ACCESS_TOKEN`)
298
- - This lets `bun create` work with private repositories or if you get rate-limited. `GITHUB_TOKEN` is chosen over `GITHUB_ACCESS_TOKEN` if both exist.
299
-
300
- {% /table %}
228
+ | Name | Description |
229
+ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
230
+ | `GITHUB_API_DOMAIN` | If you're using a GitHub enterprise or a proxy, you can customize the GitHub domain Bun pings for downloads |
231
+ | `GITHUB_TOKEN` (or `GITHUB_ACCESS_TOKEN`) | This lets `bun create` work with private repositories or if you get rate-limited. `GITHUB_TOKEN` is chosen over `GITHUB_ACCESS_TOKEN` if both exist. |
301
232
 
302
- {% details summary="How `bun create` works" %}
233
+ <Accordion title={<span>How <code>bun create</code> works</span>}>
303
234
 
304
235
  When you run `bun create ${template} ${destination}`, here’s what happens:
305
236
 
@@ -324,7 +255,7 @@ ELSE IF local template
324
255
 
325
256
  4. Parse the `package.json` (again!), update `name` to be `${basename(destination)}`, remove the `bun-create` section from the `package.json` and save the updated `package.json` to disk.
326
257
  - IF Next.js is detected, add `bun-framework-next` to the list of dependencies
327
- - IF Create React App is detected, add the entry point in /src/index.{js,jsx,ts,tsx} to `public/index.html`
258
+ - IF Create React App is detected, add the entry point in `/src/index.{js,jsx,ts,tsx}` to `public/index.html`
328
259
  - IF Relay is detected, add `bun-macro-relay` so that Relay works
329
260
  5. Auto-detect the npm client, preferring `pnpm`, `yarn` (v1), and lastly `npm`
330
261
  6. Run any tasks defined in `"bun-create": { "preinstall" }` with the npm client
@@ -335,4 +266,4 @@ ELSE IF local template
335
266
  - If there are dependencies, this runs in a separate thread concurrently while node_modules are being installed
336
267
  - Using libgit2 if available was tested and performed 3x slower in microbenchmarks
337
268
 
338
- {% /details %}
269
+ </Accordion>
@@ -1,8 +1,17 @@
1
- Scaffold an empty Bun project with the interactive `bun init` command.
1
+ ---
2
+ title: "bun init"
3
+ description: "Scaffold an empty Bun project with the interactive `bun init` command"
4
+ ---
2
5
 
3
- ```bash
4
- $ bun init
6
+ import Init from "/snippets/cli/init.mdx";
5
7
 
8
+ Get started with Bun by scaffolding a new project with `bun init`.
9
+
10
+ ```bash terminal icon="terminal"
11
+ bun init my-app
12
+ ```
13
+
14
+ ```txt
6
15
  ? Select a project template - Press return to submit.
7
16
  ❯ Blank
8
17
  React
@@ -10,30 +19,23 @@ $ bun init
10
19
 
11
20
  ✓ Select a project template: Blank
12
21
 
13
- + .gitignore
14
- + index.ts
15
- + tsconfig.json (for editor autocomplete)
16
- + README.md
17
-
18
- To get started, run:
19
-
20
- bun run index.ts
21
-
22
- bun install v1.3.2-canary.20251105T140650
23
-
24
- + @types/bun@1.3.2-canary.20251105T140650
25
- + typescript@5.9.2
26
-
27
- 7 packages installed
22
+ + .gitignore
23
+ + CLAUDE.md
24
+ + .cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc -> CLAUDE.md
25
+ + index.ts
26
+ + tsconfig.json (for editor autocomplete)
27
+ + README.md
28
28
  ```
29
29
 
30
30
  Press `enter` to accept the default answer for each prompt, or pass the `-y` flag to auto-accept the defaults.
31
31
 
32
- {% details summary="How `bun init` works" %}
32
+ ---
33
33
 
34
34
  `bun init` is a quick way to start a blank project with Bun. It guesses with sane defaults and is non-destructive when run multiple times.
35
35
 
36
- ![Demo](https://user-images.githubusercontent.com/709451/183006613-271960a3-ff22-4f7c-83f5-5e18f684c836.gif)
36
+ <Frame>
37
+ ![Demo](https://user-images.githubusercontent.com/709451/183006613-271960a3-ff22-4f7c-83f5-5e18f684c836.gif)
38
+ </Frame>
37
39
 
38
40
  It creates:
39
41
 
@@ -51,35 +53,6 @@ If you pass `-y` or `--yes`, it will assume you want to continue without asking
51
53
 
52
54
  At the end, it runs `bun install` to install `@types/bun`.
53
55
 
54
- {% /details %}
55
-
56
- {% bunCLIUsage command="init" /%}
57
-
58
- ## React
59
-
60
- The `--react` flag will scaffold a React project:
56
+ ---
61
57
 
62
- ```bash
63
- $ bun init --react
64
- ```
65
-
66
- The `--react` flag accepts the following values:
67
-
68
- - `tailwind` - Scaffold a React project with Tailwind CSS
69
- - `shadcn` - Scaffold a React project with Shadcn/UI and Tailwind CSS
70
-
71
- ### React + TailwindCSS
72
-
73
- This will create a React project with Tailwind CSS configured with Bun's bundler and dev server.
74
-
75
- ```bash
76
- $ bun init --react=tailwind
77
- ```
78
-
79
- ### React + @shadcn/ui
80
-
81
- This will create a React project with shadcn/ui and Tailwind CSS configured with Bun's bundler and dev server.
82
-
83
- ```bash
84
- $ bun init --react=shadcn
85
- ```
58
+ <Init />