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