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,1127 +0,0 @@
|
|
|
1
|
-
Bun's bundler API is inspired heavily by [esbuild](https://esbuild.github.io/). Migrating to Bun's bundler from esbuild should be relatively painless. This guide will briefly explain why you might consider migrating to Bun's bundler and provide a side-by-side API comparison reference for those who are already familiar with esbuild's API.
|
|
2
|
-
|
|
3
|
-
There are a few behavioral differences to note.
|
|
4
|
-
|
|
5
|
-
- **Bundling by default**. Unlike esbuild, Bun _always bundles by default_. This is why the `--bundle` flag isn't necessary in the Bun example. To transpile each file individually, use [`Bun.Transpiler`](https://bun.com/docs/api/transpiler).
|
|
6
|
-
- **It's just a bundler**. Unlike esbuild, Bun's bundler does not include a built-in development server or file watcher. It's just a bundler. The bundler is intended for use in conjunction with `Bun.serve` and other runtime APIs to achieve the same effect. As such, all options relating to HTTP/file watching are not applicable.
|
|
7
|
-
|
|
8
|
-
## Performance
|
|
9
|
-
|
|
10
|
-
With a performance-minded API coupled with the extensively optimized Zig-based JS/TS parser, Bun's bundler is 1.75x faster than esbuild on esbuild's [three.js benchmark](https://github.com/oven-sh/bun/tree/main/bench/bundle).
|
|
11
|
-
|
|
12
|
-
{% image src="/images/bundler-speed.png" caption="Bundling 10 copies of three.js from scratch, with sourcemaps and minification" /%}
|
|
13
|
-
|
|
14
|
-
## CLI API
|
|
15
|
-
|
|
16
|
-
Bun and esbuild both provide a command-line interface.
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
$ esbuild <entrypoint> --outdir=out --bundle
|
|
20
|
-
$ bun build <entrypoint> --outdir=out
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
In Bun's CLI, simple boolean flags like `--minify` do not accept an argument. Other flags like `--outdir <path>` do accept an argument; these flags can be written as `--outdir out` or `--outdir=out`. Some flags like `--define` can be specified several times: `--define foo=bar --define bar=baz`.
|
|
24
|
-
|
|
25
|
-
{% table %}
|
|
26
|
-
|
|
27
|
-
- `esbuild`
|
|
28
|
-
- `bun build`
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
- `--bundle`
|
|
33
|
-
- n/a
|
|
34
|
-
- Bun always bundles, use `--no-bundle` to disable this behavior.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
- `--define:K=V`
|
|
39
|
-
- `--define K=V`
|
|
40
|
-
- Small syntax difference; no colon.
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
$ esbuild --define:foo=bar
|
|
44
|
-
$ bun build --define foo=bar
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
- `--external:<pkg>`
|
|
50
|
-
- `--external <pkg>`
|
|
51
|
-
- Small syntax difference; no colon.
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
$ esbuild --external:react
|
|
55
|
-
$ bun build --external react
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
- `--format`
|
|
61
|
-
- `--format`
|
|
62
|
-
- Bun supports `"esm"` and `"cjs"` currently, but more module formats are planned. esbuild defaults to `"iife"`.
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
- `--loader:.ext=loader`
|
|
67
|
-
- `--loader .ext:loader`
|
|
68
|
-
- Bun supports a different set of built-in loaders than esbuild; see [Bundler > Loaders](https://bun.com/docs/bundler/loaders) for a complete reference. The esbuild loaders `dataurl`, `binary`, `base64`, `copy`, and `empty` are not yet implemented.
|
|
69
|
-
|
|
70
|
-
The syntax for `--loader` is slightly different.
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
$ esbuild app.ts --bundle --loader:.svg=text
|
|
74
|
-
$ bun build app.ts --loader .svg:text
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
- `--minify`
|
|
80
|
-
- `--minify`
|
|
81
|
-
- No differences
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
- `--outdir`
|
|
86
|
-
- `--outdir`
|
|
87
|
-
- No differences
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
- `--outfile`
|
|
92
|
-
- `--outfile`
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
- `--packages`
|
|
97
|
-
- `--packages`
|
|
98
|
-
- No differences
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
- `--platform`
|
|
103
|
-
- `--target`
|
|
104
|
-
- Renamed to `--target` for consistency with tsconfig. Does not support `neutral`.
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
- `--serve`
|
|
109
|
-
- n/a
|
|
110
|
-
- Not applicable
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
- `--sourcemap`
|
|
115
|
-
- `--sourcemap`
|
|
116
|
-
- No differences
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
- `--splitting`
|
|
121
|
-
- `--splitting`
|
|
122
|
-
- No differences
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
- `--target`
|
|
127
|
-
- n/a
|
|
128
|
-
- Not supported. Bun's bundler performs no syntactic down-leveling at this time.
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
- `--watch`
|
|
133
|
-
- `--watch`
|
|
134
|
-
- No differences
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
- `--allow-overwrite`
|
|
139
|
-
- n/a
|
|
140
|
-
- Overwriting is never allowed
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
- `--analyze`
|
|
145
|
-
- n/a
|
|
146
|
-
- Not supported
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
- `--asset-names`
|
|
151
|
-
- `--asset-naming`
|
|
152
|
-
- Renamed for consistency with `naming` in JS API
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
- `--banner`
|
|
157
|
-
- `--banner`
|
|
158
|
-
- Only applies to js bundles
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
- `--footer`
|
|
163
|
-
- `--footer`
|
|
164
|
-
- Only applies to js bundles
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
- `--certfile`
|
|
169
|
-
- n/a
|
|
170
|
-
- Not applicable
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
- `--charset=utf8`
|
|
175
|
-
- n/a
|
|
176
|
-
- Not supported
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
- `--chunk-names`
|
|
181
|
-
- `--chunk-naming`
|
|
182
|
-
- Renamed for consistency with `naming` in JS API
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
- `--color`
|
|
187
|
-
- n/a
|
|
188
|
-
- Always enabled
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
- `--drop`
|
|
193
|
-
- `--drop`
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
- `--entry-names`
|
|
198
|
-
- `--entry-naming`
|
|
199
|
-
- Renamed for consistency with `naming` in JS API
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
- `--global-name`
|
|
204
|
-
- n/a
|
|
205
|
-
- Not applicable, Bun does not support `iife` output at this time
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
- `--ignore-annotations`
|
|
210
|
-
- `--ignore-dce-annotations`
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
- `--inject`
|
|
215
|
-
- n/a
|
|
216
|
-
- Not supported
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
- `--jsx`
|
|
221
|
-
- `--jsx-runtime <runtime>`
|
|
222
|
-
- Supports `"automatic"` (uses `jsx` transform) and `"classic"` (uses `React.createElement`)
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
- `--jsx-dev`
|
|
227
|
-
- n/a
|
|
228
|
-
- Bun reads `compilerOptions.jsx` from `tsconfig.json` to determine a default. If `compilerOptions.jsx` is `"react-jsx"`, or if `NODE_ENV=production`, Bun will use the `jsx` transform. Otherwise, it uses `jsxDEV`. For any to Bun uses `jsxDEV`. The bundler does not support `preserve`.
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
- `--jsx-factory`
|
|
233
|
-
- `--jsx-factory`
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
- `--jsx-fragment`
|
|
238
|
-
- `--jsx-fragment`
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
- `--jsx-import-source`
|
|
243
|
-
- `--jsx-import-source`
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
- `--jsx-side-effects`
|
|
248
|
-
- `--jsx-side-effects`
|
|
249
|
-
- Controls whether JSX expressions are marked as `/* @__PURE__ */` for dead code elimination. Default is `false` (JSX marked as pure).
|
|
250
|
-
|
|
251
|
-
---
|
|
252
|
-
|
|
253
|
-
- `--keep-names`
|
|
254
|
-
- n/a
|
|
255
|
-
- Not supported
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
- `--keyfile`
|
|
260
|
-
- n/a
|
|
261
|
-
- Not applicable
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
- `--legal-comments`
|
|
266
|
-
- n/a
|
|
267
|
-
- Not supported
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
- `--log-level`
|
|
272
|
-
- n/a
|
|
273
|
-
- Not supported. This can be set in `bunfig.toml` as `logLevel`.
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
- `--log-limit`
|
|
278
|
-
- n/a
|
|
279
|
-
- Not supported
|
|
280
|
-
|
|
281
|
-
---
|
|
282
|
-
|
|
283
|
-
- `--log-override:X=Y`
|
|
284
|
-
- n/a
|
|
285
|
-
- Not supported
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
- `--main-fields`
|
|
290
|
-
- n/a
|
|
291
|
-
- Not supported
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
- `--mangle-cache`
|
|
296
|
-
- n/a
|
|
297
|
-
- Not supported
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
- `--mangle-props`
|
|
302
|
-
- n/a
|
|
303
|
-
- Not supported
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
- `--mangle-quoted`
|
|
308
|
-
- n/a
|
|
309
|
-
- Not supported
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
- `--metafile`
|
|
314
|
-
- n/a
|
|
315
|
-
- Not supported
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
- `--minify-whitespace`
|
|
320
|
-
- `--minify-whitespace`
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
- `--minify-identifiers`
|
|
325
|
-
- `--minify-identifiers`
|
|
326
|
-
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
- `--minify-syntax`
|
|
330
|
-
- `--minify-syntax`
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
- `--out-extension`
|
|
335
|
-
- n/a
|
|
336
|
-
- Not supported
|
|
337
|
-
|
|
338
|
-
---
|
|
339
|
-
|
|
340
|
-
- `--outbase`
|
|
341
|
-
- `--root`
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
- `--preserve-symlinks`
|
|
346
|
-
- n/a
|
|
347
|
-
- Not supported
|
|
348
|
-
|
|
349
|
-
---
|
|
350
|
-
|
|
351
|
-
- `--public-path`
|
|
352
|
-
- `--public-path`
|
|
353
|
-
|
|
354
|
-
---
|
|
355
|
-
|
|
356
|
-
- `--pure`
|
|
357
|
-
- n/a
|
|
358
|
-
- Not supported
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
- `--reserve-props`
|
|
363
|
-
- n/a
|
|
364
|
-
- Not supported
|
|
365
|
-
|
|
366
|
-
---
|
|
367
|
-
|
|
368
|
-
- `--resolve-extensions`
|
|
369
|
-
- n/a
|
|
370
|
-
- Not supported
|
|
371
|
-
|
|
372
|
-
---
|
|
373
|
-
|
|
374
|
-
- `--servedir`
|
|
375
|
-
- n/a
|
|
376
|
-
- Not applicable
|
|
377
|
-
|
|
378
|
-
---
|
|
379
|
-
|
|
380
|
-
- `--source-root`
|
|
381
|
-
- n/a
|
|
382
|
-
- Not supported
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
- `--sourcefile`
|
|
387
|
-
- n/a
|
|
388
|
-
- Not supported. Bun does not support `stdin` input yet.
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
- `--sourcemap`
|
|
393
|
-
- `--sourcemap`
|
|
394
|
-
- No differences
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
- `--sources-content`
|
|
399
|
-
- n/a
|
|
400
|
-
- Not supported
|
|
401
|
-
|
|
402
|
-
---
|
|
403
|
-
|
|
404
|
-
- `--supported`
|
|
405
|
-
- n/a
|
|
406
|
-
- Not supported
|
|
407
|
-
|
|
408
|
-
---
|
|
409
|
-
|
|
410
|
-
- `--tree-shaking`
|
|
411
|
-
- n/a
|
|
412
|
-
- Always `true`
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
- `--tsconfig`
|
|
417
|
-
- `--tsconfig-override`
|
|
418
|
-
|
|
419
|
-
---
|
|
420
|
-
|
|
421
|
-
- `--version`
|
|
422
|
-
- n/a
|
|
423
|
-
- Run `bun --version` to see the version of Bun.
|
|
424
|
-
|
|
425
|
-
{% /table %}
|
|
426
|
-
|
|
427
|
-
## JavaScript API
|
|
428
|
-
|
|
429
|
-
{% table %}
|
|
430
|
-
|
|
431
|
-
- `esbuild.build()`
|
|
432
|
-
- `Bun.build()`
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
|
-
- `absWorkingDir`
|
|
437
|
-
- n/a
|
|
438
|
-
- Always set to `process.cwd()`
|
|
439
|
-
|
|
440
|
-
---
|
|
441
|
-
|
|
442
|
-
- `alias`
|
|
443
|
-
- n/a
|
|
444
|
-
- Not supported
|
|
445
|
-
|
|
446
|
-
---
|
|
447
|
-
|
|
448
|
-
- `allowOverwrite`
|
|
449
|
-
- n/a
|
|
450
|
-
- Always `false`
|
|
451
|
-
|
|
452
|
-
---
|
|
453
|
-
|
|
454
|
-
- `assetNames`
|
|
455
|
-
- `naming.asset`
|
|
456
|
-
- Uses same templating syntax as esbuild, but `[ext]` must be included explicitly.
|
|
457
|
-
|
|
458
|
-
```ts
|
|
459
|
-
Bun.build({
|
|
460
|
-
entrypoints: ["./index.tsx"],
|
|
461
|
-
naming: {
|
|
462
|
-
asset: "[name].[ext]",
|
|
463
|
-
},
|
|
464
|
-
});
|
|
465
|
-
```
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
- `banner`
|
|
470
|
-
- n/a
|
|
471
|
-
- Not supported
|
|
472
|
-
|
|
473
|
-
---
|
|
474
|
-
|
|
475
|
-
- `bundle`
|
|
476
|
-
- n/a
|
|
477
|
-
- Always `true`. Use [`Bun.Transpiler`](https://bun.com/docs/api/transpiler) to transpile without bundling.
|
|
478
|
-
|
|
479
|
-
---
|
|
480
|
-
|
|
481
|
-
- `charset`
|
|
482
|
-
- n/a
|
|
483
|
-
- Not supported
|
|
484
|
-
|
|
485
|
-
---
|
|
486
|
-
|
|
487
|
-
- `chunkNames`
|
|
488
|
-
- `naming.chunk`
|
|
489
|
-
- Uses same templating syntax as esbuild, but `[ext]` must be included explicitly.
|
|
490
|
-
|
|
491
|
-
```ts
|
|
492
|
-
Bun.build({
|
|
493
|
-
entrypoints: ["./index.tsx"],
|
|
494
|
-
naming: {
|
|
495
|
-
chunk: "[name].[ext]",
|
|
496
|
-
},
|
|
497
|
-
});
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
---
|
|
501
|
-
|
|
502
|
-
- `color`
|
|
503
|
-
- n/a
|
|
504
|
-
- Bun returns logs in the `logs` property of the build result.
|
|
505
|
-
|
|
506
|
-
---
|
|
507
|
-
|
|
508
|
-
- `conditions`
|
|
509
|
-
- n/a
|
|
510
|
-
- Not supported. Export conditions priority is determined by `target`.
|
|
511
|
-
|
|
512
|
-
---
|
|
513
|
-
|
|
514
|
-
- `define`
|
|
515
|
-
- `define`
|
|
516
|
-
|
|
517
|
-
---
|
|
518
|
-
|
|
519
|
-
- `drop`
|
|
520
|
-
- n/a
|
|
521
|
-
- Not supported
|
|
522
|
-
|
|
523
|
-
---
|
|
524
|
-
|
|
525
|
-
- `entryNames`
|
|
526
|
-
- `naming` or `naming.entry`
|
|
527
|
-
- Bun supports a `naming` key that can either be a string or an object. Uses same templating syntax as esbuild, but `[ext]` must be included explicitly.
|
|
528
|
-
|
|
529
|
-
```ts
|
|
530
|
-
Bun.build({
|
|
531
|
-
entrypoints: ["./index.tsx"],
|
|
532
|
-
// when string, this is equivalent to entryNames
|
|
533
|
-
naming: "[name].[ext]",
|
|
534
|
-
|
|
535
|
-
// granular naming options
|
|
536
|
-
naming: {
|
|
537
|
-
entry: "[name].[ext]",
|
|
538
|
-
asset: "[name].[ext]",
|
|
539
|
-
chunk: "[name].[ext]",
|
|
540
|
-
},
|
|
541
|
-
});
|
|
542
|
-
```
|
|
543
|
-
|
|
544
|
-
---
|
|
545
|
-
|
|
546
|
-
- `entryPoints`
|
|
547
|
-
- `entrypoints`
|
|
548
|
-
- Capitalization difference
|
|
549
|
-
|
|
550
|
-
---
|
|
551
|
-
|
|
552
|
-
- `external`
|
|
553
|
-
- `external`
|
|
554
|
-
- No differences
|
|
555
|
-
|
|
556
|
-
---
|
|
557
|
-
|
|
558
|
-
- `footer`
|
|
559
|
-
- n/a
|
|
560
|
-
- Not supported
|
|
561
|
-
|
|
562
|
-
---
|
|
563
|
-
|
|
564
|
-
- `format`
|
|
565
|
-
- `format`
|
|
566
|
-
- Only supports `"esm"` currently. Support for `"cjs"` and `"iife"` is planned.
|
|
567
|
-
|
|
568
|
-
---
|
|
569
|
-
|
|
570
|
-
- `globalName`
|
|
571
|
-
- n/a
|
|
572
|
-
- Not supported
|
|
573
|
-
|
|
574
|
-
---
|
|
575
|
-
|
|
576
|
-
- `ignoreAnnotations`
|
|
577
|
-
- n/a
|
|
578
|
-
- Not supported
|
|
579
|
-
|
|
580
|
-
---
|
|
581
|
-
|
|
582
|
-
- `inject`
|
|
583
|
-
- n/a
|
|
584
|
-
- Not supported
|
|
585
|
-
|
|
586
|
-
---
|
|
587
|
-
|
|
588
|
-
- `jsx`
|
|
589
|
-
- `jsx`
|
|
590
|
-
- Not supported in JS API, configure in `tsconfig.json`
|
|
591
|
-
|
|
592
|
-
---
|
|
593
|
-
|
|
594
|
-
- `jsxDev`
|
|
595
|
-
- `jsxDev`
|
|
596
|
-
- Not supported in JS API, configure in `tsconfig.json`
|
|
597
|
-
|
|
598
|
-
---
|
|
599
|
-
|
|
600
|
-
- `jsxFactory`
|
|
601
|
-
- `jsxFactory`
|
|
602
|
-
- Not supported in JS API, configure in `tsconfig.json`
|
|
603
|
-
|
|
604
|
-
---
|
|
605
|
-
|
|
606
|
-
- `jsxFragment`
|
|
607
|
-
- `jsxFragment`
|
|
608
|
-
- Not supported in JS API, configure in `tsconfig.json`
|
|
609
|
-
|
|
610
|
-
---
|
|
611
|
-
|
|
612
|
-
- `jsxImportSource`
|
|
613
|
-
- `jsxImportSource`
|
|
614
|
-
- Not supported in JS API, configure in `tsconfig.json`
|
|
615
|
-
|
|
616
|
-
---
|
|
617
|
-
|
|
618
|
-
- `jsxSideEffects`
|
|
619
|
-
- `jsxSideEffects`
|
|
620
|
-
- Controls whether JSX expressions are marked as pure for dead code elimination
|
|
621
|
-
|
|
622
|
-
---
|
|
623
|
-
|
|
624
|
-
- `keepNames`
|
|
625
|
-
- n/a
|
|
626
|
-
- Not supported
|
|
627
|
-
|
|
628
|
-
---
|
|
629
|
-
|
|
630
|
-
- `legalComments`
|
|
631
|
-
- n/a
|
|
632
|
-
- Not supported
|
|
633
|
-
|
|
634
|
-
---
|
|
635
|
-
|
|
636
|
-
- `loader`
|
|
637
|
-
- `loader`
|
|
638
|
-
- Bun supports a different set of built-in loaders than esbuild; see [Bundler > Loaders](https://bun.com/docs/bundler/loaders) for a complete reference. The esbuild loaders `dataurl`, `binary`, `base64`, `copy`, and `empty` are not yet implemented.
|
|
639
|
-
|
|
640
|
-
---
|
|
641
|
-
|
|
642
|
-
- `logLevel`
|
|
643
|
-
- n/a
|
|
644
|
-
- Not supported
|
|
645
|
-
|
|
646
|
-
---
|
|
647
|
-
|
|
648
|
-
- `logLimit`
|
|
649
|
-
- n/a
|
|
650
|
-
- Not supported
|
|
651
|
-
|
|
652
|
-
---
|
|
653
|
-
|
|
654
|
-
- `logOverride`
|
|
655
|
-
- n/a
|
|
656
|
-
- Not supported
|
|
657
|
-
|
|
658
|
-
---
|
|
659
|
-
|
|
660
|
-
- `mainFields`
|
|
661
|
-
- n/a
|
|
662
|
-
- Not supported
|
|
663
|
-
|
|
664
|
-
---
|
|
665
|
-
|
|
666
|
-
- `mangleCache`
|
|
667
|
-
- n/a
|
|
668
|
-
- Not supported
|
|
669
|
-
|
|
670
|
-
---
|
|
671
|
-
|
|
672
|
-
- `mangleProps`
|
|
673
|
-
- n/a
|
|
674
|
-
- Not supported
|
|
675
|
-
|
|
676
|
-
---
|
|
677
|
-
|
|
678
|
-
- `mangleQuoted`
|
|
679
|
-
- n/a
|
|
680
|
-
- Not supported
|
|
681
|
-
|
|
682
|
-
---
|
|
683
|
-
|
|
684
|
-
- `metafile`
|
|
685
|
-
- n/a
|
|
686
|
-
- Not supported
|
|
687
|
-
|
|
688
|
-
<!-- - `manifest`
|
|
689
|
-
- When `manifest` is `true`, the result of `Bun.build()` will contain a `manifest` property. The manifest is compatible with esbuild's metafile format. -->
|
|
690
|
-
|
|
691
|
-
---
|
|
692
|
-
|
|
693
|
-
- `minify`
|
|
694
|
-
- `minify`
|
|
695
|
-
- In Bun, `minify` can be a boolean or an object.
|
|
696
|
-
|
|
697
|
-
```ts
|
|
698
|
-
await Bun.build({
|
|
699
|
-
entrypoints: ['./index.tsx'],
|
|
700
|
-
// enable all minification
|
|
701
|
-
minify: true
|
|
702
|
-
|
|
703
|
-
// granular options
|
|
704
|
-
minify: {
|
|
705
|
-
identifiers: true,
|
|
706
|
-
syntax: true,
|
|
707
|
-
whitespace: true
|
|
708
|
-
}
|
|
709
|
-
})
|
|
710
|
-
```
|
|
711
|
-
|
|
712
|
-
---
|
|
713
|
-
|
|
714
|
-
- `minifyIdentifiers`
|
|
715
|
-
- `minify.identifiers`
|
|
716
|
-
- See `minify`
|
|
717
|
-
|
|
718
|
-
---
|
|
719
|
-
|
|
720
|
-
- `minifySyntax`
|
|
721
|
-
- `minify.syntax`
|
|
722
|
-
- See `minify`
|
|
723
|
-
|
|
724
|
-
---
|
|
725
|
-
|
|
726
|
-
- `minifyWhitespace`
|
|
727
|
-
- `minify.whitespace`
|
|
728
|
-
- See `minify`
|
|
729
|
-
|
|
730
|
-
---
|
|
731
|
-
|
|
732
|
-
- `nodePaths`
|
|
733
|
-
- n/a
|
|
734
|
-
- Not supported
|
|
735
|
-
|
|
736
|
-
---
|
|
737
|
-
|
|
738
|
-
- `outExtension`
|
|
739
|
-
- n/a
|
|
740
|
-
- Not supported
|
|
741
|
-
|
|
742
|
-
---
|
|
743
|
-
|
|
744
|
-
- `outbase`
|
|
745
|
-
- `root`
|
|
746
|
-
- Different name
|
|
747
|
-
|
|
748
|
-
---
|
|
749
|
-
|
|
750
|
-
- `outdir`
|
|
751
|
-
- `outdir`
|
|
752
|
-
- No differences
|
|
753
|
-
|
|
754
|
-
---
|
|
755
|
-
|
|
756
|
-
- `outfile`
|
|
757
|
-
- `outfile`
|
|
758
|
-
- No differences
|
|
759
|
-
|
|
760
|
-
---
|
|
761
|
-
|
|
762
|
-
- `packages`
|
|
763
|
-
- n/a
|
|
764
|
-
- Not supported, use `external`
|
|
765
|
-
|
|
766
|
-
---
|
|
767
|
-
|
|
768
|
-
- `platform`
|
|
769
|
-
- `target`
|
|
770
|
-
- Supports `"bun"`, `"node"` and `"browser"` (the default). Does not support `"neutral"`.
|
|
771
|
-
|
|
772
|
-
---
|
|
773
|
-
|
|
774
|
-
- `plugins`
|
|
775
|
-
- `plugins`
|
|
776
|
-
- Bun's plugin API is a subset of esbuild's. Some esbuild plugins will work out of the box with Bun.
|
|
777
|
-
|
|
778
|
-
---
|
|
779
|
-
|
|
780
|
-
- `preserveSymlinks`
|
|
781
|
-
- n/a
|
|
782
|
-
- Not supported
|
|
783
|
-
|
|
784
|
-
---
|
|
785
|
-
|
|
786
|
-
- `publicPath`
|
|
787
|
-
- `publicPath`
|
|
788
|
-
- No differences
|
|
789
|
-
|
|
790
|
-
---
|
|
791
|
-
|
|
792
|
-
- `pure`
|
|
793
|
-
- n/a
|
|
794
|
-
- Not supported
|
|
795
|
-
|
|
796
|
-
---
|
|
797
|
-
|
|
798
|
-
- `reserveProps`
|
|
799
|
-
- n/a
|
|
800
|
-
- Not supported
|
|
801
|
-
|
|
802
|
-
---
|
|
803
|
-
|
|
804
|
-
- `resolveExtensions`
|
|
805
|
-
- n/a
|
|
806
|
-
- Not supported
|
|
807
|
-
|
|
808
|
-
---
|
|
809
|
-
|
|
810
|
-
- `sourceRoot`
|
|
811
|
-
- n/a
|
|
812
|
-
- Not supported
|
|
813
|
-
|
|
814
|
-
---
|
|
815
|
-
|
|
816
|
-
- `sourcemap`
|
|
817
|
-
- `sourcemap`
|
|
818
|
-
- Supports `"inline"`, `"external"`, and `"none"`
|
|
819
|
-
|
|
820
|
-
---
|
|
821
|
-
|
|
822
|
-
- `sourcesContent`
|
|
823
|
-
- n/a
|
|
824
|
-
- Not supported
|
|
825
|
-
|
|
826
|
-
---
|
|
827
|
-
|
|
828
|
-
- `splitting`
|
|
829
|
-
- `splitting`
|
|
830
|
-
- No differences
|
|
831
|
-
|
|
832
|
-
---
|
|
833
|
-
|
|
834
|
-
- `stdin`
|
|
835
|
-
- n/a
|
|
836
|
-
- Not supported
|
|
837
|
-
|
|
838
|
-
---
|
|
839
|
-
|
|
840
|
-
- `supported`
|
|
841
|
-
- n/a
|
|
842
|
-
- Not supported
|
|
843
|
-
|
|
844
|
-
---
|
|
845
|
-
|
|
846
|
-
- `target`
|
|
847
|
-
- n/a
|
|
848
|
-
- No support for syntax downleveling
|
|
849
|
-
|
|
850
|
-
---
|
|
851
|
-
|
|
852
|
-
- `treeShaking`
|
|
853
|
-
- n/a
|
|
854
|
-
- Always `true`
|
|
855
|
-
|
|
856
|
-
---
|
|
857
|
-
|
|
858
|
-
- `tsconfig`
|
|
859
|
-
- n/a
|
|
860
|
-
- Not supported
|
|
861
|
-
|
|
862
|
-
---
|
|
863
|
-
|
|
864
|
-
- `write`
|
|
865
|
-
- n/a
|
|
866
|
-
- Set to `true` if `outdir`/`outfile` is set, otherwise `false`
|
|
867
|
-
|
|
868
|
-
---
|
|
869
|
-
|
|
870
|
-
{% /table %}
|
|
871
|
-
|
|
872
|
-
## Plugin API
|
|
873
|
-
|
|
874
|
-
Bun's plugin API is designed to be esbuild compatible. Bun doesn't support esbuild's entire plugin API surface, but the core functionality is implemented. Many third-party `esbuild` plugins will work out of the box with Bun.
|
|
875
|
-
|
|
876
|
-
{% callout %}
|
|
877
|
-
Long term, we aim for feature parity with esbuild's API, so if something doesn't work please file an issue to help us prioritize.
|
|
878
|
-
|
|
879
|
-
{% /callout %}
|
|
880
|
-
|
|
881
|
-
Plugins in Bun and esbuild are defined with a `builder` object.
|
|
882
|
-
|
|
883
|
-
```ts
|
|
884
|
-
import type { BunPlugin } from "bun";
|
|
885
|
-
|
|
886
|
-
const myPlugin: BunPlugin = {
|
|
887
|
-
name: "my-plugin",
|
|
888
|
-
setup(builder) {
|
|
889
|
-
// define plugin
|
|
890
|
-
},
|
|
891
|
-
};
|
|
892
|
-
```
|
|
893
|
-
|
|
894
|
-
The `builder` object provides some methods for hooking into parts of the bundling process. Bun implements `onResolve` and `onLoad`; it does not yet implement the esbuild hooks `onStart`, `onEnd`, and `onDispose`, and `resolve` utilities. `initialOptions` is partially implemented, being read-only and only having a subset of esbuild's options; use [`config`](https://bun.com/docs/bundler/plugins) (same thing but with Bun's `BuildConfig` format) instead.
|
|
895
|
-
|
|
896
|
-
```ts
|
|
897
|
-
import type { BunPlugin } from "bun";
|
|
898
|
-
const myPlugin: BunPlugin = {
|
|
899
|
-
name: "my-plugin",
|
|
900
|
-
setup(builder) {
|
|
901
|
-
builder.onResolve(
|
|
902
|
-
{
|
|
903
|
-
/* onResolve.options */
|
|
904
|
-
},
|
|
905
|
-
args => {
|
|
906
|
-
return {
|
|
907
|
-
/* onResolve.results */
|
|
908
|
-
};
|
|
909
|
-
},
|
|
910
|
-
);
|
|
911
|
-
builder.onLoad(
|
|
912
|
-
{
|
|
913
|
-
/* onLoad.options */
|
|
914
|
-
},
|
|
915
|
-
args => {
|
|
916
|
-
return {
|
|
917
|
-
/* onLoad.results */
|
|
918
|
-
};
|
|
919
|
-
},
|
|
920
|
-
);
|
|
921
|
-
},
|
|
922
|
-
};
|
|
923
|
-
```
|
|
924
|
-
|
|
925
|
-
### `onResolve`
|
|
926
|
-
|
|
927
|
-
#### `options`
|
|
928
|
-
|
|
929
|
-
{% table %}
|
|
930
|
-
|
|
931
|
-
- 🟢
|
|
932
|
-
- `filter`
|
|
933
|
-
|
|
934
|
-
---
|
|
935
|
-
|
|
936
|
-
- 🟢
|
|
937
|
-
- `namespace`
|
|
938
|
-
|
|
939
|
-
{% /table %}
|
|
940
|
-
|
|
941
|
-
#### `arguments`
|
|
942
|
-
|
|
943
|
-
{% table %}
|
|
944
|
-
|
|
945
|
-
- 🟢
|
|
946
|
-
- `path`
|
|
947
|
-
|
|
948
|
-
---
|
|
949
|
-
|
|
950
|
-
- 🟢
|
|
951
|
-
- `importer`
|
|
952
|
-
|
|
953
|
-
---
|
|
954
|
-
|
|
955
|
-
- 🔴
|
|
956
|
-
- `namespace`
|
|
957
|
-
|
|
958
|
-
---
|
|
959
|
-
|
|
960
|
-
- 🔴
|
|
961
|
-
- `resolveDir`
|
|
962
|
-
|
|
963
|
-
---
|
|
964
|
-
|
|
965
|
-
- 🔴
|
|
966
|
-
- `kind`
|
|
967
|
-
|
|
968
|
-
---
|
|
969
|
-
|
|
970
|
-
- 🔴
|
|
971
|
-
- `pluginData`
|
|
972
|
-
|
|
973
|
-
{% /table %}
|
|
974
|
-
|
|
975
|
-
#### `results`
|
|
976
|
-
|
|
977
|
-
{% table %}
|
|
978
|
-
|
|
979
|
-
- 🟢
|
|
980
|
-
- `namespace`
|
|
981
|
-
|
|
982
|
-
---
|
|
983
|
-
|
|
984
|
-
- 🟢
|
|
985
|
-
- `path`
|
|
986
|
-
|
|
987
|
-
---
|
|
988
|
-
|
|
989
|
-
- 🔴
|
|
990
|
-
- `errors`
|
|
991
|
-
|
|
992
|
-
---
|
|
993
|
-
|
|
994
|
-
- 🔴
|
|
995
|
-
- `external`
|
|
996
|
-
|
|
997
|
-
---
|
|
998
|
-
|
|
999
|
-
- 🔴
|
|
1000
|
-
- `pluginData`
|
|
1001
|
-
|
|
1002
|
-
---
|
|
1003
|
-
|
|
1004
|
-
- 🔴
|
|
1005
|
-
- `pluginName`
|
|
1006
|
-
|
|
1007
|
-
---
|
|
1008
|
-
|
|
1009
|
-
- 🔴
|
|
1010
|
-
- `sideEffects`
|
|
1011
|
-
|
|
1012
|
-
---
|
|
1013
|
-
|
|
1014
|
-
- 🔴
|
|
1015
|
-
- `suffix`
|
|
1016
|
-
|
|
1017
|
-
---
|
|
1018
|
-
|
|
1019
|
-
- 🔴
|
|
1020
|
-
- `warnings`
|
|
1021
|
-
|
|
1022
|
-
---
|
|
1023
|
-
|
|
1024
|
-
- 🔴
|
|
1025
|
-
- `watchDirs`
|
|
1026
|
-
|
|
1027
|
-
---
|
|
1028
|
-
|
|
1029
|
-
- 🔴
|
|
1030
|
-
- `watchFiles`
|
|
1031
|
-
|
|
1032
|
-
{% /table %}
|
|
1033
|
-
|
|
1034
|
-
### `onLoad`
|
|
1035
|
-
|
|
1036
|
-
#### `options`
|
|
1037
|
-
|
|
1038
|
-
{% table %}
|
|
1039
|
-
|
|
1040
|
-
---
|
|
1041
|
-
|
|
1042
|
-
- 🟢
|
|
1043
|
-
- `filter`
|
|
1044
|
-
|
|
1045
|
-
---
|
|
1046
|
-
|
|
1047
|
-
- 🟢
|
|
1048
|
-
- `namespace`
|
|
1049
|
-
|
|
1050
|
-
{% /table %}
|
|
1051
|
-
|
|
1052
|
-
#### `arguments`
|
|
1053
|
-
|
|
1054
|
-
{% table %}
|
|
1055
|
-
|
|
1056
|
-
---
|
|
1057
|
-
|
|
1058
|
-
- 🟢
|
|
1059
|
-
- `path`
|
|
1060
|
-
|
|
1061
|
-
---
|
|
1062
|
-
|
|
1063
|
-
- 🔴
|
|
1064
|
-
- `namespace`
|
|
1065
|
-
|
|
1066
|
-
---
|
|
1067
|
-
|
|
1068
|
-
- 🔴
|
|
1069
|
-
- `suffix`
|
|
1070
|
-
|
|
1071
|
-
---
|
|
1072
|
-
|
|
1073
|
-
- 🔴
|
|
1074
|
-
- `pluginData`
|
|
1075
|
-
|
|
1076
|
-
{% /table %}
|
|
1077
|
-
|
|
1078
|
-
#### `results`
|
|
1079
|
-
|
|
1080
|
-
{% table %}
|
|
1081
|
-
|
|
1082
|
-
---
|
|
1083
|
-
|
|
1084
|
-
- 🟢
|
|
1085
|
-
- `contents`
|
|
1086
|
-
|
|
1087
|
-
---
|
|
1088
|
-
|
|
1089
|
-
- 🟢
|
|
1090
|
-
- `loader`
|
|
1091
|
-
|
|
1092
|
-
---
|
|
1093
|
-
|
|
1094
|
-
- 🔴
|
|
1095
|
-
- `errors`
|
|
1096
|
-
|
|
1097
|
-
---
|
|
1098
|
-
|
|
1099
|
-
- 🔴
|
|
1100
|
-
- `pluginData`
|
|
1101
|
-
|
|
1102
|
-
---
|
|
1103
|
-
|
|
1104
|
-
- 🔴
|
|
1105
|
-
- `pluginName`
|
|
1106
|
-
|
|
1107
|
-
---
|
|
1108
|
-
|
|
1109
|
-
- 🔴
|
|
1110
|
-
- `resolveDir`
|
|
1111
|
-
|
|
1112
|
-
---
|
|
1113
|
-
|
|
1114
|
-
- 🔴
|
|
1115
|
-
- `warnings`
|
|
1116
|
-
|
|
1117
|
-
---
|
|
1118
|
-
|
|
1119
|
-
- 🔴
|
|
1120
|
-
- `watchDirs`
|
|
1121
|
-
|
|
1122
|
-
---
|
|
1123
|
-
|
|
1124
|
-
- 🔴
|
|
1125
|
-
- `watchFiles`
|
|
1126
|
-
|
|
1127
|
-
{% /table %}
|