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
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Runtime behavior"
|
|
3
|
+
description: "Learn about Bun test's runtime integration, environment variables, timeouts, and error handling"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
`bun test` is deeply integrated with Bun's runtime. This is part of what makes `bun test` fast and simple to use.
|
|
7
|
+
|
|
8
|
+
## Environment Variables
|
|
9
|
+
|
|
10
|
+
### NODE_ENV
|
|
11
|
+
|
|
12
|
+
`bun test` automatically sets `$NODE_ENV` to `"test"` unless it's already set in the environment or via `.env` files. This is standard behavior for most test runners and helps ensure consistent test behavior.
|
|
13
|
+
|
|
14
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
15
|
+
import { test, expect } from "bun:test";
|
|
16
|
+
|
|
17
|
+
test("NODE_ENV is set to test", () => {
|
|
18
|
+
expect(process.env.NODE_ENV).toBe("test");
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
You can override this by setting `NODE_ENV` explicitly:
|
|
23
|
+
|
|
24
|
+
```bash terminal icon="terminal"
|
|
25
|
+
NODE_ENV=development bun test
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### TZ (Timezone)
|
|
29
|
+
|
|
30
|
+
By default, all `bun test` runs use UTC (`Etc/UTC`) as the time zone unless overridden by the `TZ` environment variable. This ensures consistent date and time behavior across different development environments.
|
|
31
|
+
|
|
32
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
33
|
+
import { test, expect } from "bun:test";
|
|
34
|
+
|
|
35
|
+
test("timezone is UTC by default", () => {
|
|
36
|
+
const date = new Date();
|
|
37
|
+
expect(date.getTimezoneOffset()).toBe(0);
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
To test with a specific timezone:
|
|
42
|
+
|
|
43
|
+
```bash terminal icon="terminal"
|
|
44
|
+
TZ=America/New_York bun test
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Test Timeouts
|
|
48
|
+
|
|
49
|
+
Each test has a default timeout of 5000ms (5 seconds) if not explicitly overridden. Tests that exceed this timeout will fail.
|
|
50
|
+
|
|
51
|
+
### Global Timeout
|
|
52
|
+
|
|
53
|
+
Change the timeout globally with the `--timeout` flag:
|
|
54
|
+
|
|
55
|
+
```bash terminal icon="terminal"
|
|
56
|
+
bun test --timeout 10000 # 10 seconds
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Per-Test Timeout
|
|
60
|
+
|
|
61
|
+
Set timeout per test as the third parameter to the test function:
|
|
62
|
+
|
|
63
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
64
|
+
import { test, expect } from "bun:test";
|
|
65
|
+
|
|
66
|
+
test("fast test", () => {
|
|
67
|
+
expect(1 + 1).toBe(2);
|
|
68
|
+
}, 1000); // 1 second timeout
|
|
69
|
+
|
|
70
|
+
test("slow test", async () => {
|
|
71
|
+
await new Promise(resolve => setTimeout(resolve, 8000));
|
|
72
|
+
}, 10000); // 10 second timeout
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Infinite Timeout
|
|
76
|
+
|
|
77
|
+
Use `0` or `Infinity` to disable timeout:
|
|
78
|
+
|
|
79
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
80
|
+
test("test without timeout", async () => {
|
|
81
|
+
// This test can run indefinitely
|
|
82
|
+
await someVeryLongOperation();
|
|
83
|
+
}, 0);
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Error Handling
|
|
87
|
+
|
|
88
|
+
### Unhandled Errors
|
|
89
|
+
|
|
90
|
+
`bun test` tracks unhandled promise rejections and errors that occur between tests. If such errors occur, the final exit code will be non-zero (specifically, the count of such errors), even if all tests pass.
|
|
91
|
+
|
|
92
|
+
This helps catch errors in asynchronous code that might otherwise go unnoticed:
|
|
93
|
+
|
|
94
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
95
|
+
import { test } from "bun:test";
|
|
96
|
+
|
|
97
|
+
test("test 1", () => {
|
|
98
|
+
// This test passes
|
|
99
|
+
expect(true).toBe(true);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// This error happens outside any test
|
|
103
|
+
setTimeout(() => {
|
|
104
|
+
throw new Error("Unhandled error");
|
|
105
|
+
}, 0);
|
|
106
|
+
|
|
107
|
+
test("test 2", () => {
|
|
108
|
+
// This test also passes
|
|
109
|
+
expect(true).toBe(true);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// The test run will still fail with a non-zero exit code
|
|
113
|
+
// because of the unhandled error
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Promise Rejections
|
|
117
|
+
|
|
118
|
+
Unhandled promise rejections are also caught:
|
|
119
|
+
|
|
120
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
121
|
+
import { test } from "bun:test";
|
|
122
|
+
|
|
123
|
+
test("passing test", () => {
|
|
124
|
+
expect(1).toBe(1);
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// This will cause the test run to fail
|
|
128
|
+
Promise.reject(new Error("Unhandled rejection"));
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Custom Error Handling
|
|
132
|
+
|
|
133
|
+
You can set up custom error handlers in your test setup:
|
|
134
|
+
|
|
135
|
+
```ts title="test-setup.ts" icon="/icons/typescript.svg"
|
|
136
|
+
process.on("uncaughtException", error => {
|
|
137
|
+
console.error("Uncaught Exception:", error);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
process.on("unhandledRejection", (reason, promise) => {
|
|
142
|
+
console.error("Unhandled Rejection at:", promise, "reason:", reason);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## CLI Flags Integration
|
|
148
|
+
|
|
149
|
+
Several Bun CLI flags can be used with `bun test` to modify its behavior:
|
|
150
|
+
|
|
151
|
+
### Memory Usage
|
|
152
|
+
|
|
153
|
+
```bash terminal icon="terminal"
|
|
154
|
+
# Reduces memory usage for the test runner VM
|
|
155
|
+
bun test --smol
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Debugging
|
|
159
|
+
|
|
160
|
+
```bash terminal icon="terminal"
|
|
161
|
+
# Attaches the debugger to the test runner process
|
|
162
|
+
bun test --inspect
|
|
163
|
+
bun test --inspect-brk
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Module Loading
|
|
167
|
+
|
|
168
|
+
```bash terminal icon="terminal"
|
|
169
|
+
# Runs scripts before test files (useful for global setup/mocks)
|
|
170
|
+
bun test --preload ./setup.ts
|
|
171
|
+
|
|
172
|
+
# Sets compile-time constants
|
|
173
|
+
bun test --define "process.env.API_URL='http://localhost:3000'"
|
|
174
|
+
|
|
175
|
+
# Configures custom loaders
|
|
176
|
+
bun test --loader .special:special-loader
|
|
177
|
+
|
|
178
|
+
# Uses a different tsconfig
|
|
179
|
+
bun test --tsconfig-override ./test-tsconfig.json
|
|
180
|
+
|
|
181
|
+
# Sets package.json conditions for module resolution
|
|
182
|
+
bun test --conditions development
|
|
183
|
+
|
|
184
|
+
# Loads environment variables for tests
|
|
185
|
+
bun test --env-file .env.test
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Installation-related Flags
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# Affect any network requests or auto-installs during test execution
|
|
192
|
+
bun test --prefer-offline
|
|
193
|
+
bun test --frozen-lockfile
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Watch and Hot Reloading
|
|
197
|
+
|
|
198
|
+
### Watch Mode
|
|
199
|
+
|
|
200
|
+
When running `bun test` with the `--watch` flag, the test runner will watch for file changes and re-run affected tests.
|
|
201
|
+
|
|
202
|
+
```bash terminal icon="terminal"
|
|
203
|
+
bun test --watch
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
The test runner is smart about which tests to re-run:
|
|
207
|
+
|
|
208
|
+
```ts title="math.test.ts" icon="/icons/typescript.svg"
|
|
209
|
+
import { add } from "./math.js";
|
|
210
|
+
import { test, expect } from "bun:test";
|
|
211
|
+
|
|
212
|
+
test("addition", () => {
|
|
213
|
+
expect(add(2, 3)).toBe(5);
|
|
214
|
+
});
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
If you modify `math.js`, only `math.test.ts` will re-run, not all tests.
|
|
218
|
+
|
|
219
|
+
### Hot Reloading
|
|
220
|
+
|
|
221
|
+
The `--hot` flag provides similar functionality but is more aggressive about trying to preserve state between runs:
|
|
222
|
+
|
|
223
|
+
```bash terminal icon="terminal"
|
|
224
|
+
bun test --hot
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
For most test scenarios, `--watch` is the recommended option as it provides better isolation between test runs.
|
|
228
|
+
|
|
229
|
+
## Global Variables
|
|
230
|
+
|
|
231
|
+
The following globals are automatically available in test files without importing (though they can be imported from `bun:test` if preferred):
|
|
232
|
+
|
|
233
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
234
|
+
// All of these are available globally
|
|
235
|
+
test("global test function", () => {
|
|
236
|
+
expect(true).toBe(true);
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
describe("global describe", () => {
|
|
240
|
+
beforeAll(() => {
|
|
241
|
+
// global beforeAll
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
it("global it function", () => {
|
|
245
|
+
// it is an alias for test
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
// Jest compatibility
|
|
250
|
+
jest.fn();
|
|
251
|
+
|
|
252
|
+
// Vitest compatibility
|
|
253
|
+
vi.fn();
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
You can also import them explicitly if you prefer:
|
|
257
|
+
|
|
258
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
259
|
+
import { test, it, describe, expect, beforeAll, beforeEach, afterAll, afterEach, jest, vi } from "bun:test";
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Process Integration
|
|
263
|
+
|
|
264
|
+
### Exit Codes
|
|
265
|
+
|
|
266
|
+
`bun test` uses standard exit codes:
|
|
267
|
+
|
|
268
|
+
- `0`: All tests passed, no unhandled errors
|
|
269
|
+
- `1`: Test failures occurred
|
|
270
|
+
- `>1`: Number of unhandled errors (even if tests passed)
|
|
271
|
+
|
|
272
|
+
### Signal Handling
|
|
273
|
+
|
|
274
|
+
The test runner properly handles common signals:
|
|
275
|
+
|
|
276
|
+
```bash terminal icon="terminal"
|
|
277
|
+
# Gracefully stops test execution
|
|
278
|
+
kill -SIGTERM <test-process-pid>
|
|
279
|
+
|
|
280
|
+
# Immediately stops test execution
|
|
281
|
+
kill -SIGKILL <test-process-pid>
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Environment Detection
|
|
285
|
+
|
|
286
|
+
Bun automatically detects certain environments and adjusts behavior:
|
|
287
|
+
|
|
288
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
289
|
+
// GitHub Actions detection
|
|
290
|
+
if (process.env.GITHUB_ACTIONS) {
|
|
291
|
+
// Bun automatically emits GitHub Actions annotations
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// CI detection
|
|
295
|
+
if (process.env.CI) {
|
|
296
|
+
// Certain behaviors may be adjusted for CI environments
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
## Performance Considerations
|
|
301
|
+
|
|
302
|
+
### Single Process
|
|
303
|
+
|
|
304
|
+
The test runner runs all tests in a single process by default. This provides:
|
|
305
|
+
|
|
306
|
+
- **Faster startup** - No need to spawn multiple processes
|
|
307
|
+
- **Shared memory** - Efficient resource usage
|
|
308
|
+
- **Simple debugging** - All tests in one process
|
|
309
|
+
|
|
310
|
+
However, this means:
|
|
311
|
+
|
|
312
|
+
- Tests share global state (use lifecycle hooks to clean up)
|
|
313
|
+
- One test crash can affect others
|
|
314
|
+
- No true parallelization of individual tests
|
|
315
|
+
|
|
316
|
+
### Memory Management
|
|
317
|
+
|
|
318
|
+
```bash terminal icon="terminal"
|
|
319
|
+
# Monitor memory usage
|
|
320
|
+
bun test --smol # Reduces memory footprint
|
|
321
|
+
|
|
322
|
+
# For large test suites, consider splitting files
|
|
323
|
+
bun test src/unit/
|
|
324
|
+
bun test src/integration/
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Test Isolation
|
|
328
|
+
|
|
329
|
+
Since tests run in the same process, ensure proper cleanup:
|
|
330
|
+
|
|
331
|
+
```ts title="test.ts" icon="/icons/typescript.svg"
|
|
332
|
+
import { afterEach } from "bun:test";
|
|
333
|
+
|
|
334
|
+
afterEach(() => {
|
|
335
|
+
// Clean up global state
|
|
336
|
+
global.myGlobalVar = undefined;
|
|
337
|
+
delete process.env.TEST_VAR;
|
|
338
|
+
|
|
339
|
+
// Reset modules if needed
|
|
340
|
+
jest.resetModules();
|
|
341
|
+
});
|
|
342
|
+
```
|