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.
- package/bun.d.ts +102 -6
- package/docs/README.md +28 -0
- package/docs/bundler/bytecode.mdx +465 -0
- package/docs/bundler/{css.md → css.mdx} +97 -101
- package/docs/bundler/esbuild.mdx +253 -0
- package/docs/bundler/{executables.md → executables.mdx} +130 -221
- package/docs/bundler/fullstack.mdx +1064 -0
- package/docs/bundler/{hmr.md → hot-reloading.mdx} +74 -79
- package/docs/bundler/{html.md → html-static.mdx} +148 -111
- package/docs/bundler/index.mdx +1499 -0
- package/docs/bundler/loaders.mdx +356 -0
- package/docs/bundler/{macros.md → macros.mdx} +83 -84
- package/docs/bundler/minifier.mdx +1306 -0
- package/docs/bundler/plugins.mdx +411 -0
- package/docs/feedback.mdx +85 -0
- package/docs/guides/binary/{arraybuffer-to-array.md → arraybuffer-to-array.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-blob.md → arraybuffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-buffer.md → arraybuffer-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-string.md → arraybuffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-typedarray.md → arraybuffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{blob-to-arraybuffer.md → blob-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{blob-to-dataview.md → blob-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{blob-to-stream.md → blob-to-stream.mdx} +3 -1
- package/docs/guides/binary/{blob-to-string.md → blob-to-string.mdx} +3 -1
- package/docs/guides/binary/{blob-to-typedarray.md → blob-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-arraybuffer.md → buffer-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-blob.md → buffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-readablestream.md → buffer-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-string.md → buffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-typedarray.md → buffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{dataview-to-string.md → dataview-to-string.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-arraybuffer.md → typedarray-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-blob.md → typedarray-to-blob.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-buffer.md → typedarray-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-dataview.md → typedarray-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-readablestream.md → typedarray-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-string.md → typedarray-to-string.mdx} +3 -1
- package/docs/guides/deployment/aws-lambda.mdx +204 -0
- package/docs/guides/deployment/digital-ocean.mdx +161 -0
- package/docs/guides/deployment/google-cloud-run.mdx +197 -0
- package/docs/guides/deployment/{railway.md → railway.mdx} +42 -54
- package/docs/guides/deployment/render.mdx +82 -0
- package/docs/guides/deployment/vercel.mdx +99 -0
- package/docs/guides/ecosystem/{astro.md → astro.mdx} +16 -6
- package/docs/guides/ecosystem/{discordjs.md → discordjs.mdx} +21 -18
- package/docs/guides/ecosystem/{docker.md → docker.mdx} +25 -14
- package/docs/guides/ecosystem/{drizzle.md → drizzle.mdx} +32 -22
- package/docs/guides/ecosystem/{edgedb.md → edgedb.mdx} +63 -34
- package/docs/guides/ecosystem/{elysia.md → elysia.mdx} +11 -11
- package/docs/guides/ecosystem/{express.md → express.mdx} +12 -9
- package/docs/guides/ecosystem/{hono.md → hono.mdx} +16 -8
- package/docs/guides/ecosystem/{mongoose.md → mongoose.mdx} +26 -21
- package/docs/guides/ecosystem/{neon-drizzle.md → neon-drizzle.mdx} +49 -35
- package/docs/guides/ecosystem/{neon-serverless-postgres.md → neon-serverless-postgres.mdx} +16 -11
- package/docs/guides/ecosystem/{nextjs.md → nextjs.mdx} +18 -10
- package/docs/guides/ecosystem/{nuxt.md → nuxt.mdx} +45 -11
- package/docs/guides/ecosystem/{pm2.md → pm2.mdx} +7 -9
- package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
- package/docs/guides/ecosystem/prisma.mdx +164 -0
- package/docs/guides/ecosystem/{qwik.md → qwik.mdx} +18 -11
- package/docs/guides/ecosystem/{react.md → react.mdx} +9 -7
- package/docs/guides/ecosystem/{remix.md → remix.mdx} +45 -26
- package/docs/guides/ecosystem/{sentry.md → sentry.mdx} +7 -5
- package/docs/guides/ecosystem/{solidstart.md → solidstart.mdx} +21 -13
- package/docs/guides/ecosystem/{ssr-react.md → ssr-react.mdx} +9 -11
- package/docs/guides/ecosystem/{stric.md → stric.mdx} +16 -17
- package/docs/guides/ecosystem/{sveltekit.md → sveltekit.mdx} +42 -29
- package/docs/guides/ecosystem/{systemd.md → systemd.mdx} +27 -26
- package/docs/guides/ecosystem/upstash.mdx +87 -0
- package/docs/guides/ecosystem/{vite.md → vite.mdx} +20 -14
- package/docs/guides/html-rewriter/{extract-links.md → extract-links.mdx} +11 -7
- package/docs/guides/html-rewriter/{extract-social-meta.md → extract-social-meta.mdx} +6 -2
- package/docs/guides/http/{cluster.md → cluster.mdx} +10 -7
- package/docs/guides/http/{fetch-unix.md → fetch-unix.mdx} +5 -3
- package/docs/guides/http/{fetch.md → fetch.mdx} +5 -3
- package/docs/guides/http/{file-uploads.md → file-uploads.mdx} +18 -15
- package/docs/guides/http/{hot.md → hot.mdx} +9 -7
- package/docs/guides/http/{proxy.md → proxy.mdx} +7 -5
- package/docs/guides/http/{server.md → server.mdx} +4 -2
- package/docs/guides/http/{simple.md → simple.mdx} +4 -2
- package/docs/guides/http/{stream-file.md → stream-file.mdx} +6 -4
- package/docs/guides/http/{stream-iterator.md → stream-iterator.mdx} +5 -3
- package/docs/guides/http/{stream-node-streams-in-bun.md → stream-node-streams-in-bun.mdx} +4 -2
- package/docs/guides/http/{tls.md → tls.mdx} +5 -3
- package/docs/guides/index.mdx +10 -0
- package/docs/guides/install/{add-dev.md → add-dev.mdx} +8 -6
- package/docs/guides/install/add-git.mdx +38 -0
- package/docs/guides/install/{add-optional.md → add-optional.mdx} +7 -5
- package/docs/guides/install/{add-peer.md → add-peer.mdx} +13 -11
- package/docs/guides/install/{add-tarball.md → add-tarball.mdx} +7 -5
- package/docs/guides/install/{add.md → add.mdx} +12 -10
- package/docs/guides/install/{azure-artifacts.md → azure-artifacts.mdx} +15 -12
- package/docs/guides/{runtime/cicd.md → install/cicd.mdx} +13 -13
- package/docs/guides/install/{custom-registry.md → custom-registry.mdx} +6 -4
- package/docs/guides/install/{from-npm-install-to-bun-install.md → from-npm-install-to-bun-install.mdx} +50 -34
- package/docs/guides/install/{git-diff-bun-lockfile.md → git-diff-bun-lockfile.mdx} +14 -11
- package/docs/guides/install/{jfrog-artifactory.md → jfrog-artifactory.mdx} +4 -4
- package/docs/guides/install/{npm-alias.md → npm-alias.mdx} +6 -4
- package/docs/guides/install/{registry-scope.md → registry-scope.mdx} +6 -4
- package/docs/guides/install/{trusted.md → trusted.mdx} +22 -18
- package/docs/guides/install/{workspaces.md → workspaces.mdx} +13 -13
- package/docs/guides/install/{yarnlock.md → yarnlock.mdx} +15 -9
- package/docs/guides/process/{argv.md → argv.mdx} +17 -9
- package/docs/guides/process/{ctrl-c.md → ctrl-c.mdx} +4 -2
- package/docs/guides/process/{ipc.md → ipc.mdx} +13 -10
- package/docs/guides/process/{nanoseconds.md → nanoseconds.mdx} +3 -1
- package/docs/guides/process/{os-signals.md → os-signals.mdx} +3 -1
- package/docs/guides/process/{spawn-stderr.md → spawn-stderr.mdx} +4 -1
- package/docs/guides/process/{spawn-stdout.md → spawn-stdout.mdx} +3 -1
- package/docs/guides/process/{spawn.md → spawn.mdx} +3 -1
- package/docs/guides/process/{stdin.md → stdin.mdx} +15 -7
- package/docs/guides/read-file/{arraybuffer.md → arraybuffer.mdx} +5 -3
- package/docs/guides/read-file/{buffer.md → buffer.mdx} +4 -2
- package/docs/guides/read-file/{exists.md → exists.mdx} +4 -2
- package/docs/guides/read-file/{json.md → json.mdx} +4 -2
- package/docs/guides/read-file/{mime.md → mime.mdx} +3 -1
- package/docs/guides/read-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/read-file/{string.md → string.mdx} +3 -1
- package/docs/guides/read-file/{uint8array.md → uint8array.mdx} +3 -1
- package/docs/guides/read-file/{watch.md → watch.mdx} +6 -8
- package/docs/guides/runtime/{build-time-constants.md → build-time-constants.mdx} +24 -22
- package/docs/guides/{install/cicd.md → runtime/cicd.mdx} +11 -7
- package/docs/guides/runtime/{codesign-macos-executable.md → codesign-macos-executable.mdx} +14 -9
- package/docs/guides/runtime/{define-constant.md → define-constant.mdx} +20 -16
- package/docs/guides/runtime/{delete-directory.md → delete-directory.mdx} +5 -3
- package/docs/guides/runtime/{delete-file.md → delete-file.mdx} +4 -2
- package/docs/guides/runtime/{heap-snapshot.md → heap-snapshot.mdx} +5 -3
- package/docs/guides/runtime/{import-html.md → import-html.mdx} +4 -2
- package/docs/guides/runtime/{import-json.md → import-json.mdx} +6 -4
- package/docs/guides/runtime/{import-toml.md → import-toml.mdx} +5 -3
- package/docs/guides/runtime/{import-yaml.md → import-yaml.mdx} +9 -7
- package/docs/guides/runtime/{read-env.md → read-env.mdx} +10 -5
- package/docs/guides/runtime/{set-env.md → set-env.mdx} +14 -10
- package/docs/guides/runtime/{shell.md → shell.mdx} +6 -4
- package/docs/guides/runtime/{timezone.md → timezone.mdx} +10 -7
- package/docs/guides/runtime/{tsconfig-paths.md → tsconfig-paths.mdx} +5 -3
- package/docs/guides/runtime/{typescript.md → typescript.mdx} +8 -6
- package/docs/guides/runtime/{vscode-debugger.md → vscode-debugger.mdx} +12 -11
- package/docs/guides/runtime/{web-debugger.md → web-debugger.mdx} +39 -18
- package/docs/guides/streams/{node-readable-to-arraybuffer.md → node-readable-to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-blob.md → node-readable-to-blob.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-json.md → node-readable-to-json.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-string.md → node-readable-to-string.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-uint8array.md → node-readable-to-uint8array.mdx} +3 -1
- package/docs/guides/streams/{to-array.md → to-array.mdx} +3 -1
- package/docs/guides/streams/{to-arraybuffer.md → to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{to-blob.md → to-blob.mdx} +3 -1
- package/docs/guides/streams/{to-buffer.md → to-buffer.mdx} +3 -1
- package/docs/guides/streams/{to-json.md → to-json.mdx} +4 -2
- package/docs/guides/streams/{to-string.md → to-string.mdx} +3 -1
- package/docs/guides/streams/{to-typedarray.md → to-typedarray.mdx} +3 -1
- package/docs/guides/test/{bail.md → bail.mdx} +7 -5
- package/docs/guides/test/{coverage-threshold.md → coverage-threshold.mdx} +14 -7
- package/docs/guides/test/{coverage.md → coverage.mdx} +9 -4
- package/docs/guides/test/{happy-dom.md → happy-dom.mdx} +13 -8
- package/docs/guides/test/{migrate-from-jest.md → migrate-from-jest.mdx} +19 -37
- package/docs/guides/test/{mock-clock.md → mock-clock.mdx} +3 -1
- package/docs/guides/test/{mock-functions.md → mock-functions.mdx} +7 -5
- package/docs/guides/test/{rerun-each.md → rerun-each.mdx} +5 -3
- package/docs/guides/test/{run-tests.md → run-tests.mdx} +16 -11
- package/docs/guides/test/{skip-tests.md → skip-tests.mdx} +8 -4
- package/docs/guides/test/{snapshot.md → snapshot.mdx} +20 -13
- package/docs/guides/test/spy-on.mdx +49 -0
- package/docs/guides/test/{svelte-test.md → svelte-test.mdx} +16 -23
- package/docs/guides/test/{testing-library.md → testing-library.mdx} +18 -17
- package/docs/guides/test/{timeout.md → timeout.mdx} +5 -3
- package/docs/guides/test/{todo-tests.md → todo-tests.mdx} +13 -6
- package/docs/guides/test/{update-snapshots.md → update-snapshots.mdx} +9 -6
- package/docs/guides/test/{watch-mode.md → watch-mode.mdx} +9 -4
- package/docs/guides/util/{base64.md → base64.mdx} +3 -1
- package/docs/guides/util/{deep-equals.md → deep-equals.mdx} +5 -3
- package/docs/guides/util/{deflate.md → deflate.mdx} +3 -1
- package/docs/guides/util/{detect-bun.md → detect-bun.mdx} +3 -1
- package/docs/guides/util/{entrypoint.md → entrypoint.mdx} +4 -2
- package/docs/guides/util/{escape-html.md → escape-html.mdx} +3 -1
- package/docs/guides/util/{file-url-to-path.md → file-url-to-path.mdx} +3 -1
- package/docs/guides/util/{gzip.md → gzip.mdx} +3 -1
- package/docs/guides/util/{hash-a-password.md → hash-a-password.mdx} +3 -1
- package/docs/guides/util/{import-meta-dir.md → import-meta-dir.mdx} +4 -2
- package/docs/guides/util/{import-meta-file.md → import-meta-file.mdx} +4 -2
- package/docs/guides/util/{import-meta-path.md → import-meta-path.mdx} +4 -2
- package/docs/guides/util/{javascript-uuid.md → javascript-uuid.mdx} +3 -1
- package/docs/guides/util/{main.md → main.mdx} +19 -8
- package/docs/guides/util/{path-to-file-url.md → path-to-file-url.mdx} +3 -1
- package/docs/guides/util/{sleep.md → sleep.mdx} +3 -1
- package/docs/guides/util/{version.md → version.mdx} +6 -4
- package/docs/guides/util/{which-path-to-executable-bin.md → which-path-to-executable-bin.mdx} +4 -2
- package/docs/guides/websocket/{compression.md → compression.mdx} +5 -3
- package/docs/guides/websocket/{context.md → context.mdx} +9 -12
- package/docs/guides/websocket/{pubsub.md → pubsub.mdx} +5 -6
- package/docs/guides/websocket/{simple.md → simple.mdx} +5 -3
- package/docs/guides/write-file/{append.md → append.mdx} +3 -1
- package/docs/guides/write-file/{basic.md → basic.mdx} +3 -1
- package/docs/guides/write-file/{blob.md → blob.mdx} +3 -1
- package/docs/guides/write-file/{cat.md → cat.mdx} +4 -2
- package/docs/guides/write-file/{file-cp.md → file-cp.mdx} +3 -1
- package/docs/guides/write-file/{filesink.md → filesink.mdx} +3 -1
- package/docs/guides/write-file/{response.md → response.mdx} +3 -1
- package/docs/guides/write-file/{stdout.md → stdout.mdx} +3 -1
- package/docs/guides/write-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/write-file/{unlink.md → unlink.mdx} +3 -1
- package/docs/{index.md → index.mdx} +97 -41
- package/docs/installation.mdx +365 -0
- package/docs/{cli/bunx.md → pm/bunx.mdx} +25 -31
- package/docs/{install/catalogs.md → pm/catalogs.mdx} +18 -24
- package/docs/{cli/add.md → pm/cli/add.mdx} +61 -55
- package/docs/{install/audit.md → pm/cli/audit.mdx} +11 -8
- package/docs/{cli/install.md → pm/cli/install.mdx} +208 -81
- package/docs/{cli/link.md → pm/cli/link.mdx} +27 -19
- package/docs/{cli/outdated.md → pm/cli/outdated.mdx} +119 -12
- package/docs/{install/patch.md → pm/cli/patch.mdx} +25 -15
- package/docs/{cli/pm.md → pm/cli/pm.mdx} +96 -62
- package/docs/{cli/publish.md → pm/cli/publish.mdx} +38 -35
- package/docs/pm/cli/remove.mdx +16 -0
- package/docs/{cli/update.md → pm/cli/update.mdx} +26 -15
- package/docs/{cli/why.md → pm/cli/why.mdx} +27 -10
- package/docs/{cli/filter.md → pm/filter.mdx} +26 -14
- package/docs/{install/cache.md → pm/global-cache.mdx} +25 -12
- package/docs/{install/isolated.md → pm/isolated-installs.mdx} +32 -24
- package/docs/{install/lifecycle.md → pm/lifecycle.mdx} +20 -9
- package/docs/{install/lockfile.md → pm/lockfile.mdx} +18 -12
- package/docs/{install/npmrc.md → pm/npmrc.mdx} +30 -24
- package/docs/{install/overrides.md → pm/overrides.mdx} +47 -37
- package/docs/{install/registries.md → pm/scopes-registries.mdx} +8 -3
- package/docs/{install/security-scanner-api.md → pm/security-scanner-api.mdx} +22 -8
- package/docs/{install/workspaces.md → pm/workspaces.mdx} +17 -22
- package/docs/project/{benchmarking.md → benchmarking.mdx} +26 -11
- package/docs/project/{bindgen.md → bindgen.mdx} +12 -14
- package/docs/project/{building-windows.md → building-windows.mdx} +18 -47
- package/docs/project/{contributing.md → contributing.mdx} +56 -60
- package/docs/project/feedback.mdx +20 -0
- package/docs/project/license.mdx +78 -0
- package/docs/project/roadmap.mdx +8 -0
- package/docs/quickstart.mdx +240 -0
- package/docs/runtime/{autoimport.md → auto-install.mdx} +34 -31
- package/docs/{api/binary-data.md → runtime/binary-data.mdx} +77 -269
- package/docs/runtime/bun-apis.mdx +59 -0
- package/docs/runtime/{bunfig.md → bunfig.mdx} +95 -225
- package/docs/{api/cc.md → runtime/c-compiler.mdx} +16 -9
- package/docs/{api/spawn.md → runtime/child-process.mdx} +69 -119
- package/docs/{api/color.md → runtime/color.mdx} +6 -1
- package/docs/{api/console.md → runtime/console.mdx} +17 -7
- package/docs/{api/cookie.md → runtime/cookies.mdx} +24 -19
- package/docs/runtime/{debugger.md → debugger.mdx} +61 -51
- package/docs/runtime/environment-variables.mdx +214 -0
- package/docs/{api/ffi.md → runtime/ffi.mdx} +53 -45
- package/docs/{api/file-io.md → runtime/file-io.mdx} +41 -101
- package/docs/{api/file-system-router.md → runtime/file-system-router.mdx} +8 -2
- package/docs/{bundler/loaders.md → runtime/file-types.mdx} +56 -112
- package/docs/{api/glob.md → runtime/glob.mdx} +4 -1
- package/docs/runtime/globals.mdx +72 -0
- package/docs/{api/hashing.md → runtime/hashing.mdx} +18 -22
- package/docs/{api/html-rewriter.md → runtime/html-rewriter.mdx} +36 -30
- package/docs/runtime/http/cookies.mdx +79 -0
- package/docs/runtime/http/error-handling.mdx +40 -0
- package/docs/runtime/http/metrics.mdx +36 -0
- package/docs/runtime/http/routing.mdx +289 -0
- package/docs/runtime/http/server.mdx +647 -0
- package/docs/runtime/http/tls.mdx +101 -0
- package/docs/{api/websockets.md → runtime/http/websockets.mdx} +62 -231
- package/docs/{cli/run.md → runtime/index.mdx} +70 -108
- package/docs/runtime/jsx.mdx +115 -0
- package/docs/runtime/{modules.md → module-resolution.mdx} +83 -61
- package/docs/{api/dns.md → runtime/networking/dns.mdx} +23 -22
- package/docs/{api/fetch.md → runtime/networking/fetch.mdx} +10 -5
- package/docs/{api/tcp.md → runtime/networking/tcp.mdx} +59 -41
- package/docs/{api/udp.md → runtime/networking/udp.mdx} +14 -8
- package/docs/{api/node-api.md → runtime/node-api.mdx} +5 -0
- package/docs/runtime/{nodejs-apis.md → nodejs-compat.mdx} +9 -4
- package/docs/{bundler/plugins.md → runtime/plugins.mdx} +17 -61
- package/docs/{api/redis.md → runtime/redis.mdx} +65 -80
- package/docs/{api/s3.md → runtime/s3.mdx} +79 -66
- package/docs/{api/secrets.md → runtime/secrets.mdx} +27 -10
- package/docs/{api/semver.md → runtime/semver.mdx} +9 -4
- package/docs/runtime/{shell.md → shell.mdx} +52 -20
- package/docs/{api/sql.md → runtime/sql.mdx} +129 -99
- package/docs/{api/sqlite.md → runtime/sqlite.mdx} +162 -157
- package/docs/{api/streams.md → runtime/streams.mdx} +33 -31
- package/docs/{cli/bun-create.md → runtime/templating/create.mdx} +74 -143
- package/docs/{cli/init.md → runtime/templating/init.mdx} +24 -51
- package/docs/{api/transpiler.md → runtime/transpiler.mdx} +50 -38
- package/docs/{typescript.md → runtime/typescript.mdx} +7 -2
- package/docs/{api/utils.md → runtime/utils.mdx} +81 -50
- package/docs/runtime/{hot.md → watch-mode.mdx} +53 -37
- package/docs/runtime/web-apis.mdx +29 -0
- package/docs/{api/workers.md → runtime/workers.mdx} +28 -22
- package/docs/{api/yaml.md → runtime/yaml.mdx} +33 -232
- package/docs/snippets/cli/add.mdx +166 -0
- package/docs/snippets/cli/build.mdx +196 -0
- package/docs/snippets/cli/feedback.mdx +17 -0
- package/docs/snippets/cli/init.mdx +84 -0
- package/docs/snippets/cli/install.mdx +173 -0
- package/docs/snippets/cli/link.mdx +163 -0
- package/docs/snippets/cli/outdated.mdx +140 -0
- package/docs/snippets/cli/patch.mdx +171 -0
- package/docs/snippets/cli/publish.mdx +198 -0
- package/docs/snippets/cli/remove.mdx +146 -0
- package/docs/snippets/cli/run.mdx +293 -0
- package/docs/snippets/cli/test.mdx +100 -0
- package/docs/snippets/cli/update.mdx +144 -0
- package/docs/snippets/product-card.mdx +32 -0
- package/docs/snippets/product-tiles.mdx +94 -0
- package/docs/test/code-coverage.mdx +409 -0
- package/docs/test/configuration.mdx +467 -0
- package/docs/test/{time.md → dates-times.mdx} +23 -20
- package/docs/test/{discovery.md → discovery.mdx} +15 -10
- package/docs/test/dom.mdx +226 -0
- package/docs/{cli/test.md → test/index.mdx} +77 -94
- package/docs/test/lifecycle.mdx +348 -0
- package/docs/test/mocks.mdx +637 -0
- package/docs/test/{reporters.md → reporters.mdx} +15 -15
- package/docs/test/runtime-behavior.mdx +342 -0
- package/docs/test/snapshots.mdx +434 -0
- package/docs/test/writing-tests.mdx +635 -0
- package/docs/typescript.mdx +54 -0
- package/package.json +8 -6
- package/test.d.ts +2 -2
- package/docs/api/file.md +0 -19
- package/docs/api/globals.md +0 -387
- package/docs/api/http.md +0 -1408
- package/docs/api/import-meta.md +0 -69
- package/docs/benchmarks.md +0 -120
- package/docs/bun-flavored-toml.md +0 -42
- package/docs/bundler/css_modules.md +0 -145
- package/docs/bundler/fullstack.md +0 -418
- package/docs/bundler/index.md +0 -1735
- package/docs/bundler/intro.md +0 -75
- package/docs/bundler/vs-esbuild.md +0 -1127
- package/docs/cli/bun-completions.md +0 -3
- package/docs/cli/bun-install.md +0 -349
- package/docs/cli/bun-upgrade.md +0 -39
- package/docs/cli/info.md +0 -65
- package/docs/cli/patch-commit.md +0 -11
- package/docs/cli/remove.md +0 -7
- package/docs/cli/unlink.md +0 -9
- package/docs/contributing/upgrading-webkit.md +0 -57
- package/docs/ecosystem/elysia.md +0 -24
- package/docs/ecosystem/express.md +0 -37
- package/docs/ecosystem/hono.md +0 -18
- package/docs/ecosystem/react.md +0 -65
- package/docs/ecosystem/stric.md +0 -38
- package/docs/guides/ecosystem/prisma.md +0 -141
- package/docs/guides/ecosystem/render.md +0 -79
- package/docs/guides/install/add-git.md +0 -36
- package/docs/guides/test/spy-on.md +0 -46
- package/docs/install/index.md +0 -248
- package/docs/installation.md +0 -327
- package/docs/project/asan.md +0 -124
- package/docs/project/internals/build-process-for-ci.md +0 -75
- package/docs/project/licensing.md +0 -73
- package/docs/project/roadmap.md +0 -87
- package/docs/quickstart.md +0 -157
- package/docs/runtime/bun-apis.md +0 -207
- package/docs/runtime/env.md +0 -253
- package/docs/runtime/index.md +0 -312
- package/docs/runtime/jsx.md +0 -385
- package/docs/runtime/loaders.md +0 -130
- package/docs/runtime/plugins.md +0 -561
- package/docs/runtime/typescript.md +0 -139
- package/docs/runtime/web-apis.md +0 -128
- package/docs/test/configuration.md +0 -154
- package/docs/test/coverage.md +0 -142
- package/docs/test/dom.md +0 -75
- package/docs/test/examples/concurrent-test-glob.md +0 -132
- package/docs/test/hot.md +0 -15
- package/docs/test/lifecycle.md +0 -81
- package/docs/test/mocks.md +0 -313
- package/docs/test/runtime-behavior.md +0 -95
- package/docs/test/snapshots.md +0 -68
- 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
|
-
|
|
6
|
-
Bun also implements the `node:stream` module, including
|
|
7
|
-
|
|
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
|
-
|
|
42
|
-
//
|
|
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.
|
|
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
|
|
137
|
+
```ts
|
|
134
138
|
const sink = new Bun.ArrayBufferSink();
|
|
135
139
|
sink.start({
|
|
136
|
-
|
|
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
|
-
|
|
194
|
+
---
|
|
191
195
|
|
|
192
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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
|
-
|
|
124
|
-
|
|
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
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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
|
-
|
|
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
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
-
|
|
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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
269
|
+
</Accordion>
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
title: "bun init"
|
|
3
|
+
description: "Scaffold an empty Bun project with the interactive `bun init` command"
|
|
4
|
+
---
|
|
2
5
|
|
|
3
|
-
|
|
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
|
-
+
|
|
15
|
-
+
|
|
16
|
-
+
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
|
|
36
|
+
<Frame>
|
|
37
|
+

|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
{% bunCLIUsage command="init" /%}
|
|
57
|
-
|
|
58
|
-
## React
|
|
59
|
-
|
|
60
|
-
The `--react` flag will scaffold a React project:
|
|
56
|
+
---
|
|
61
57
|
|
|
62
|
-
|
|
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 />
|