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,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
title: UDP
|
|
3
|
+
description: Use Bun's UDP API to implement services with advanced real-time requirements, such as voice chat.
|
|
4
|
+
---
|
|
2
5
|
|
|
3
6
|
## Bind a UDP socket (`Bun.udpSocket()`)
|
|
4
7
|
|
|
@@ -13,8 +16,9 @@ Specify a port:
|
|
|
13
16
|
|
|
14
17
|
```ts
|
|
15
18
|
const socket = await Bun.udpSocket({
|
|
16
|
-
port: 41234,
|
|
19
|
+
port: 41234, // [!code ++]
|
|
17
20
|
});
|
|
21
|
+
|
|
18
22
|
console.log(socket.port); // 41234
|
|
19
23
|
```
|
|
20
24
|
|
|
@@ -33,7 +37,7 @@ DNS resolution, as it is intended for low-latency operations.
|
|
|
33
37
|
|
|
34
38
|
When creating your socket, add a callback to specify what should be done when packets are received:
|
|
35
39
|
|
|
36
|
-
```ts
|
|
40
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
37
41
|
const server = await Bun.udpSocket({
|
|
38
42
|
socket: {
|
|
39
43
|
data(socket, buf, port, addr) {
|
|
@@ -53,7 +57,7 @@ While UDP does not have a concept of a connection, many UDP communications (espe
|
|
|
53
57
|
In such cases it can be beneficial to connect the socket to that peer, which specifies to which address all packets are sent
|
|
54
58
|
and restricts incoming packets to that peer only.
|
|
55
59
|
|
|
56
|
-
```ts
|
|
60
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
57
61
|
const server = await Bun.udpSocket({
|
|
58
62
|
socket: {
|
|
59
63
|
data(socket, buf, port, addr) {
|
|
@@ -62,6 +66,7 @@ const server = await Bun.udpSocket({
|
|
|
62
66
|
},
|
|
63
67
|
},
|
|
64
68
|
});
|
|
69
|
+
|
|
65
70
|
const client = await Bun.udpSocket({
|
|
66
71
|
connect: {
|
|
67
72
|
port: server.port,
|
|
@@ -82,21 +87,23 @@ of making a system call for each. This is made possible by the `sendMany()` API:
|
|
|
82
87
|
For an unconnected socket, `sendMany` takes an array as its only argument. Each set of three array elements describes a packet:
|
|
83
88
|
The first item is the data to be sent, the second is the target port, and the last is the target address.
|
|
84
89
|
|
|
85
|
-
```ts
|
|
90
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
86
91
|
const socket = await Bun.udpSocket({});
|
|
92
|
+
|
|
87
93
|
// sends 'Hello' to 127.0.0.1:41234, and 'foo' to 1.1.1.1:53 in a single operation
|
|
88
94
|
socket.sendMany(["Hello", 41234, "127.0.0.1", "foo", 53, "1.1.1.1"]);
|
|
89
95
|
```
|
|
90
96
|
|
|
91
97
|
With a connected socket, `sendMany` simply takes an array, where each element represents the data to be sent to the peer.
|
|
92
98
|
|
|
93
|
-
```ts
|
|
99
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
94
100
|
const socket = await Bun.udpSocket({
|
|
95
101
|
connect: {
|
|
96
102
|
port: 41234,
|
|
97
103
|
hostname: "localhost",
|
|
98
104
|
},
|
|
99
105
|
});
|
|
106
|
+
|
|
100
107
|
socket.sendMany(["foo", "bar", "baz"]);
|
|
101
108
|
```
|
|
102
109
|
|
|
@@ -109,8 +116,7 @@ It may happen that a packet that you're sending does not fit into the operating
|
|
|
109
116
|
has happened when:
|
|
110
117
|
|
|
111
118
|
- `send` returns `false`
|
|
112
|
-
- `sendMany` returns a number smaller than the number of packets you specified
|
|
113
|
-
In this case, the `drain` socket handler will be called once the socket becomes writable again:
|
|
119
|
+
- `sendMany` returns a number smaller than the number of packets you specified. In this case, the `drain` socket handler will be called once the socket becomes writable again:
|
|
114
120
|
|
|
115
121
|
```ts
|
|
116
122
|
const socket = await Bun.udpSocket({
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Node-API
|
|
3
|
+
description: Use Bun's Node-API module to build native add-ons to Node.js
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Node-API is an interface for building native add-ons to Node.js. Bun implements 95% of this interface from scratch, so most existing Node-API extensions will work with Bun out of the box. Track the completion status of it in [this issue](https://github.com/oven-sh/bun/issues/158).
|
|
2
7
|
|
|
3
8
|
As in Node.js, `.node` files (Node-API modules) can be required directly in Bun.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Node.js Compatibility"
|
|
3
|
+
description: "Bun's compatibility status with Node.js APIs, modules, and globals"
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Every day, Bun gets closer to 100% Node.js API compatibility. Today, popular frameworks like Next.js, Express, and millions of `npm` packages intended for Node just work with Bun. To ensure compatibility, we run thousands of tests from Node.js' test suite before every release of Bun.
|
|
2
7
|
|
|
3
8
|
**If a package works in Node.js but doesn't work in Bun, we consider it a bug in Bun.** Please [open an issue](https://bun.com/issues) and we'll fix it.
|
|
@@ -96,7 +101,7 @@ This page is updated regularly to reflect compatibility status of the latest ver
|
|
|
96
101
|
|
|
97
102
|
### [`node:child_process`](https://nodejs.org/api/child_process.html)
|
|
98
103
|
|
|
99
|
-
🟡 Missing `proc.gid` `proc.uid`. `Stream` class not exported. IPC cannot send socket handles. Node.js
|
|
104
|
+
🟡 Missing `proc.gid` `proc.uid`. `Stream` class not exported. IPC cannot send socket handles. Node.js ↔ Bun IPC can be used with JSON serialization.
|
|
100
105
|
|
|
101
106
|
### [`node:cluster`](https://nodejs.org/api/cluster.html)
|
|
102
107
|
|
|
@@ -116,7 +121,7 @@ This page is updated regularly to reflect compatibility status of the latest ver
|
|
|
116
121
|
|
|
117
122
|
### [`node:module`](https://nodejs.org/api/module.html)
|
|
118
123
|
|
|
119
|
-
🟡 Missing `syncBuiltinESMExports`, `Module#load()`. Overriding `require.cache` is supported for ESM & CJS modules. `module._extensions`, `module._pathCache`, `module._cache` are no-ops. `module.register` is not implemented and we recommend using a [`Bun.plugin`](
|
|
124
|
+
🟡 Missing `syncBuiltinESMExports`, `Module#load()`. Overriding `require.cache` is supported for ESM & CJS modules. `module._extensions`, `module._pathCache`, `module._cache` are no-ops. `module.register` is not implemented and we recommend using a [`Bun.plugin`](/runtime/plugins) in the meantime.
|
|
120
125
|
|
|
121
126
|
### [`node:net`](https://nodejs.org/api/net.html)
|
|
122
127
|
|
|
@@ -144,7 +149,7 @@ This page is updated regularly to reflect compatibility status of the latest ver
|
|
|
144
149
|
|
|
145
150
|
### [`node:v8`](https://nodejs.org/api/v8.html)
|
|
146
151
|
|
|
147
|
-
🟡 `writeHeapSnapshot` and `getHeapSnapshot` are implemented. `serialize` and `deserialize` use JavaScriptCore's wire format instead of V8's. Other methods are not implemented. For profiling, use [`bun:jsc`](
|
|
152
|
+
🟡 `writeHeapSnapshot` and `getHeapSnapshot` are implemented. `serialize` and `deserialize` use JavaScriptCore's wire format instead of V8's. Other methods are not implemented. For profiling, use [`bun:jsc`](/project/benchmarking#bunjsc) instead.
|
|
148
153
|
|
|
149
154
|
### [`node:vm`](https://nodejs.org/api/vm.html)
|
|
150
155
|
|
|
@@ -172,7 +177,7 @@ This page is updated regularly to reflect compatibility status of the latest ver
|
|
|
172
177
|
|
|
173
178
|
### [`node:test`](https://nodejs.org/api/test.html)
|
|
174
179
|
|
|
175
|
-
🟡 Partly implemented. Missing mocks, snapshots, timers. Use [`bun:test`](
|
|
180
|
+
🟡 Partly implemented. Missing mocks, snapshots, timers. Use [`bun:test`](/test) instead.
|
|
176
181
|
|
|
177
182
|
### [`node:trace_events`](https://nodejs.org/api/tracing.html)
|
|
178
183
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Plugins"
|
|
3
|
+
description: "Universal plugin API for extending Bun's runtime and bundler"
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Bun provides a universal plugin API that can be used to extend both the _runtime_ and _bundler_.
|
|
2
7
|
|
|
3
8
|
Plugins intercept imports and perform custom loading logic: reading files, transpiling code, etc. They can be used to add support for additional file types, like `.scss` or `.yaml`. In the context of Bun's bundler, plugins can be used to implement framework-level features like CSS extraction, macros, and client-server code co-location.
|
|
@@ -9,17 +14,15 @@ Plugins can register callbacks to be run at various points in the lifecycle of a
|
|
|
9
14
|
- [`onStart()`](#onstart): Run once the bundler has started a bundle
|
|
10
15
|
- [`onResolve()`](#onresolve): Run before a module is resolved
|
|
11
16
|
- [`onLoad()`](#onload): Run before a module is loaded.
|
|
12
|
-
- [`onEnd()`](#onend): Run after the bundle has completed
|
|
13
17
|
- [`onBeforeParse()`](#onbeforeparse): Run zero-copy native addons in the parser thread before a file is parsed.
|
|
14
18
|
|
|
15
19
|
### Reference
|
|
16
20
|
|
|
17
21
|
A rough overview of the types (please refer to Bun's `bun.d.ts` for the full type definitions):
|
|
18
22
|
|
|
19
|
-
```ts
|
|
23
|
+
```ts Plugin Types icon="/icons/typescript.svg"
|
|
20
24
|
type PluginBuilder = {
|
|
21
25
|
onStart(callback: () => void): void;
|
|
22
|
-
onEnd(callback: (result: BuildOutput) => void | Promise<void>): void;
|
|
23
26
|
onResolve: (
|
|
24
27
|
args: { filter: RegExp; namespace?: string },
|
|
25
28
|
callback: (args: { path: string; importer: string }) => {
|
|
@@ -46,7 +49,7 @@ type Loader = "js" | "jsx" | "ts" | "tsx" | "css" | "json" | "toml";
|
|
|
46
49
|
|
|
47
50
|
A plugin is defined as simple JavaScript object containing a `name` property and a `setup` function.
|
|
48
51
|
|
|
49
|
-
```tsx
|
|
52
|
+
```tsx myPlugin.ts icon="/icons/typescript.svg"
|
|
50
53
|
import type { BunPlugin } from "bun";
|
|
51
54
|
|
|
52
55
|
const myPlugin: BunPlugin = {
|
|
@@ -59,7 +62,7 @@ const myPlugin: BunPlugin = {
|
|
|
59
62
|
|
|
60
63
|
This plugin can be passed into the `plugins` array when calling `Bun.build`.
|
|
61
64
|
|
|
62
|
-
```ts
|
|
65
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
63
66
|
await Bun.build({
|
|
64
67
|
entrypoints: ["./app.ts"],
|
|
65
68
|
outdir: "./out",
|
|
@@ -90,7 +93,7 @@ onStart(callback: () => void): Promise<void> | void;
|
|
|
90
93
|
|
|
91
94
|
Registers a callback to be run when the bundler starts a new bundle.
|
|
92
95
|
|
|
93
|
-
```ts
|
|
96
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
94
97
|
import { plugin } from "bun";
|
|
95
98
|
|
|
96
99
|
plugin({
|
|
@@ -108,7 +111,7 @@ The callback can return a `Promise`. After the bundle process has initialized, t
|
|
|
108
111
|
|
|
109
112
|
For example:
|
|
110
113
|
|
|
111
|
-
```ts
|
|
114
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
112
115
|
const result = await Bun.build({
|
|
113
116
|
entrypoints: ["./app.ts"],
|
|
114
117
|
outdir: "./dist",
|
|
@@ -163,7 +166,7 @@ The callback receives as input the _path_ to the matching module. The callback c
|
|
|
163
166
|
|
|
164
167
|
For example, redirecting all imports to `images/` to `./public/images/`:
|
|
165
168
|
|
|
166
|
-
```ts
|
|
169
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
167
170
|
import { plugin } from "bun";
|
|
168
171
|
|
|
169
172
|
plugin({
|
|
@@ -208,7 +211,7 @@ The callback can return a new `contents` string for the module as well as a new
|
|
|
208
211
|
|
|
209
212
|
For example:
|
|
210
213
|
|
|
211
|
-
```ts
|
|
214
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
212
215
|
import { plugin } from "bun";
|
|
213
216
|
|
|
214
217
|
const envPlugin: BunPlugin = {
|
|
@@ -245,7 +248,7 @@ This is useful for returning contents of a module that depends on other modules.
|
|
|
245
248
|
|
|
246
249
|
##### Example: tracking and reporting unused exports
|
|
247
250
|
|
|
248
|
-
```ts
|
|
251
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
249
252
|
import { plugin } from "bun";
|
|
250
253
|
|
|
251
254
|
plugin({
|
|
@@ -287,60 +290,13 @@ plugin({
|
|
|
287
290
|
|
|
288
291
|
Note that the `.defer()` function currently has the limitation that it can only be called once per `onLoad` callback.
|
|
289
292
|
|
|
290
|
-
### `onEnd`
|
|
291
|
-
|
|
292
|
-
```ts
|
|
293
|
-
onEnd(callback: (result: BuildOutput) => void | Promise<void>): void;
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
Registers a callback to be run when the bundler completes a bundle (whether successful or not).
|
|
297
|
-
|
|
298
|
-
The callback receives the `BuildOutput` object containing:
|
|
299
|
-
|
|
300
|
-
- `success`: boolean indicating if the build succeeded
|
|
301
|
-
- `outputs`: array of generated build artifacts
|
|
302
|
-
- `logs`: array of build messages (warnings, errors, etc.)
|
|
303
|
-
|
|
304
|
-
This is useful for post-processing, cleanup, notifications, or custom error handling.
|
|
305
|
-
|
|
306
|
-
```ts
|
|
307
|
-
await Bun.build({
|
|
308
|
-
entrypoints: ["./index.ts"],
|
|
309
|
-
outdir: "./out",
|
|
310
|
-
plugins: [
|
|
311
|
-
{
|
|
312
|
-
name: "onEnd example",
|
|
313
|
-
setup(build) {
|
|
314
|
-
build.onEnd(result => {
|
|
315
|
-
if (result.success) {
|
|
316
|
-
console.log(
|
|
317
|
-
`✅ Build succeeded with ${result.outputs.length} outputs`,
|
|
318
|
-
);
|
|
319
|
-
} else {
|
|
320
|
-
console.error(`❌ Build failed with ${result.logs.length} errors`);
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
},
|
|
324
|
-
},
|
|
325
|
-
],
|
|
326
|
-
});
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
The `onEnd` callbacks are called:
|
|
330
|
-
|
|
331
|
-
- **Before** the build promise resolves or rejects
|
|
332
|
-
- **After** all bundling is complete
|
|
333
|
-
- **In the order** they were registered
|
|
334
|
-
|
|
335
|
-
Multiple plugins can register `onEnd` callbacks, and they will all be called sequentially. If an `onEnd` callback returns a promise, the build will wait for it to resolve before continuing.
|
|
336
|
-
|
|
337
293
|
## Native plugins
|
|
338
294
|
|
|
339
295
|
One of the reasons why Bun's bundler is so fast is that it is written in native code and leverages multi-threading to load and parse modules in parallel.
|
|
340
296
|
|
|
341
297
|
However, one limitation of plugins written in JavaScript is that JavaScript itself is single-threaded.
|
|
342
298
|
|
|
343
|
-
Native plugins are written as [NAPI](
|
|
299
|
+
Native plugins are written as [NAPI](/runtime/node-api) modules and can be run on multiple threads. This allows native plugins to run much faster than JavaScript plugins.
|
|
344
300
|
|
|
345
301
|
In addition, native plugins can skip unnecessary work such as the UTF-8 -> UTF-16 conversion needed to pass strings to JavaScript.
|
|
346
302
|
|
|
@@ -358,14 +314,14 @@ Native plugins are NAPI modules which expose lifecycle hooks as C ABI functions.
|
|
|
358
314
|
|
|
359
315
|
To create a native plugin, you must export a C ABI function which matches the signature of the native lifecycle hook you want to implement.
|
|
360
316
|
|
|
361
|
-
```bash
|
|
317
|
+
```bash terminal icon="terminal"
|
|
362
318
|
bun add -g @napi-rs/cli
|
|
363
319
|
napi new
|
|
364
320
|
```
|
|
365
321
|
|
|
366
322
|
Then install this crate:
|
|
367
323
|
|
|
368
|
-
```bash
|
|
324
|
+
```bash terminal icon="terminal"
|
|
369
325
|
cargo add bun-native-plugin
|
|
370
326
|
```
|
|
371
327
|
|
|
@@ -374,7 +330,7 @@ will implement our native plugin.
|
|
|
374
330
|
|
|
375
331
|
Here's an example implementing the `onBeforeParse` hook:
|
|
376
332
|
|
|
377
|
-
```rs
|
|
333
|
+
```rs lib.rs icon="/icons/rust.svg"
|
|
378
334
|
use bun_native_plugin::{define_bun_plugin, OnBeforeParse, bun, Result, anyhow, BunLoader};
|
|
379
335
|
use napi_derive::napi;
|
|
380
336
|
|