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,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read stderr from a child process
|
|
3
|
+
sidebarTitle: Read stderr
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the child process inherits the `stderr` of the spawning process. If instead you'd prefer to read and handle `stderr`, set the `stderr` option to `"pipe"`.
|
|
@@ -8,6 +10,7 @@ When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the child process in
|
|
|
8
10
|
const proc = Bun.spawn(["echo", "hello"], {
|
|
9
11
|
stderr: "pipe",
|
|
10
12
|
});
|
|
13
|
+
|
|
11
14
|
proc.stderr; // => ReadableStream
|
|
12
15
|
```
|
|
13
16
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read stdout from a child process
|
|
3
|
+
sidebarTitle: Read stdout
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the `stdout` of the child process can be consumed as a `ReadableStream` via `proc.stdout`.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read from stdin
|
|
3
|
+
sidebarTitle: Read from stdin
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
For CLI tools, it's often useful to read from `stdin`. In Bun, the `console` object is an `AsyncIterable` that yields lines from `stdin`.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
8
10
|
const prompt = "Type something: ";
|
|
9
11
|
process.stdout.write(prompt);
|
|
10
12
|
for await (const line of console) {
|
|
@@ -17,8 +19,11 @@ for await (const line of console) {
|
|
|
17
19
|
|
|
18
20
|
Running this file results in a never-ending interactive prompt that echoes whatever the user types.
|
|
19
21
|
|
|
20
|
-
```sh
|
|
21
|
-
|
|
22
|
+
```sh terminal icon="terminal"
|
|
23
|
+
bun run index.ts
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```txt
|
|
22
27
|
Type something: hello
|
|
23
28
|
You typed: hello
|
|
24
29
|
Type something: hello again
|
|
@@ -31,7 +36,7 @@ Bun also exposes stdin as a `BunFile` via `Bun.stdin`. This is useful for increm
|
|
|
31
36
|
|
|
32
37
|
There is no guarantee that the chunks will be split line-by-line.
|
|
33
38
|
|
|
34
|
-
```ts
|
|
39
|
+
```ts stdin.ts icon="/icons/typescript.svg"
|
|
35
40
|
for await (const chunk of Bun.stdin.stream()) {
|
|
36
41
|
// chunk is Uint8Array
|
|
37
42
|
// this converts it to text (assumes ASCII encoding)
|
|
@@ -44,8 +49,11 @@ for await (const chunk of Bun.stdin.stream()) {
|
|
|
44
49
|
|
|
45
50
|
This will print the input that is piped into the `bun` process.
|
|
46
51
|
|
|
47
|
-
```sh
|
|
48
|
-
|
|
52
|
+
```sh terminal icon="terminal"
|
|
53
|
+
echo "hello" | bun run stdin.ts
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```txt
|
|
49
57
|
Chunk: hello
|
|
50
58
|
```
|
|
51
59
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read a file to an ArrayBuffer
|
|
3
|
+
sidebarTitle: Read to ArrayBuffer
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.arrayBuffer()` to read the file as an `ArrayBuffer`.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
8
10
|
const path = "/path/to/package.json";
|
|
9
11
|
const file = Bun.file(path);
|
|
10
12
|
|
|
@@ -15,7 +17,7 @@ const buffer = await file.arrayBuffer();
|
|
|
15
17
|
|
|
16
18
|
The binary content in the `ArrayBuffer` can then be read as a typed array, such as `Int8Array`. For `Uint8Array`, use [`.bytes()`](./uint8array).
|
|
17
19
|
|
|
18
|
-
```ts
|
|
20
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
19
21
|
const buffer = await file.arrayBuffer();
|
|
20
22
|
const bytes = new Int8Array(buffer);
|
|
21
23
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read a file to a Buffer
|
|
3
|
+
sidebarTitle: Read to Buffer
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats.
|
|
6
8
|
|
|
7
9
|
To read the file into a `Buffer` instance, first use `.arrayBuffer()` to consume the file as an `ArrayBuffer`, then use `Buffer.from()` to create a `Buffer` from the `ArrayBuffer`.
|
|
8
10
|
|
|
9
|
-
```ts
|
|
11
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
10
12
|
const path = "/path/to/package.json";
|
|
11
13
|
const file = Bun.file(path);
|
|
12
14
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Check if a file exists
|
|
3
|
+
sidebarTitle: Check file exists
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. Use the `.exists()` method to check if a file exists at the given path.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
8
10
|
const path = "/path/to/package.json";
|
|
9
11
|
const file = Bun.file(path);
|
|
10
12
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read a JSON file
|
|
3
|
+
sidebarTitle: Read JSON file
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.json()` to read and parse the contents of a `.json` file as a plain object.
|
|
6
8
|
|
|
7
9
|
The MIME type of the `BunFile` will be set accordingly.
|
|
8
10
|
|
|
9
|
-
```ts
|
|
11
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
10
12
|
const path = "/path/to/package.json";
|
|
11
13
|
const file = Bun.file(path);
|
|
12
14
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Get the MIME type of a file
|
|
3
|
+
sidebarTitle: Get MIME type
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob`, so use the `.type` property to read the MIME type.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read a file as a ReadableStream
|
|
3
|
+
sidebarTitle: Read as stream
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.stream()` to consume the file incrementally as a `ReadableStream`.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read a file as a string
|
|
3
|
+
sidebarTitle: Read as string
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.text()` to read the contents as a string.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read a file to a Uint8Array
|
|
3
|
+
sidebarTitle: Read to Uint8Array
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Watch a directory for changes
|
|
3
|
+
sidebarTitle: Watch directory
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Bun implements the `node:fs` module, including the `fs.watch` function for listening for file system changes.
|
|
@@ -21,13 +23,9 @@ To listen to changes in subdirectories, pass the `recursive: true` option to `fs
|
|
|
21
23
|
```ts
|
|
22
24
|
import { watch } from "fs";
|
|
23
25
|
|
|
24
|
-
const watcher = watch(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
(event, relativePath) => {
|
|
28
|
-
console.log(`Detected ${event} in ${relativePath}`);
|
|
29
|
-
},
|
|
30
|
-
);
|
|
26
|
+
const watcher = watch(import.meta.dir, { recursive: true }, (event, filename) => {
|
|
27
|
+
console.log(`Detected ${event} in ${filename}`);
|
|
28
|
+
});
|
|
31
29
|
```
|
|
32
30
|
|
|
33
31
|
---
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Build-time constants with --define
|
|
3
|
+
sidebarTitle: Build-time constants
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `--define` flag can be used with `bun build` and `bun build --compile` to inject build-time constants into your application. This is especially useful for embedding metadata like build versions, timestamps, or configuration flags directly into your compiled executables.
|
|
6
8
|
|
|
7
|
-
```sh
|
|
8
|
-
|
|
9
|
+
```sh terminal icon="terminal"
|
|
10
|
+
bun build --compile --define BUILD_VERSION='"1.2.3"' --define BUILD_TIME='"2024-01-15T10:30:00Z"' src/index.ts --outfile myapp
|
|
9
11
|
```
|
|
10
12
|
|
|
11
13
|
---
|
|
@@ -27,21 +29,21 @@ This is similar to `gcc -D` or `#define` in C/C++, but for JavaScript/TypeScript
|
|
|
27
29
|
|
|
28
30
|
### With `bun build`
|
|
29
31
|
|
|
30
|
-
```sh
|
|
32
|
+
```sh terminal icon="terminal"
|
|
31
33
|
# Bundle with build-time constants
|
|
32
|
-
|
|
34
|
+
bun build --define BUILD_VERSION='"1.0.0"' --define NODE_ENV='"production"' src/index.ts --outdir ./dist
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
### With `bun build --compile`
|
|
36
38
|
|
|
37
|
-
```sh
|
|
39
|
+
```sh terminal icon="terminal"
|
|
38
40
|
# Compile to executable with build-time constants
|
|
39
|
-
|
|
41
|
+
bun build --compile --define BUILD_VERSION='"1.0.0"' --define BUILD_TIME='"2024-01-15T10:30:00Z"' src/cli.ts --outfile mycli
|
|
40
42
|
```
|
|
41
43
|
|
|
42
44
|
### JavaScript API
|
|
43
45
|
|
|
44
|
-
```ts
|
|
46
|
+
```ts build.ts icon="/icons/typescript.svg"
|
|
45
47
|
await Bun.build({
|
|
46
48
|
entrypoints: ["./src/index.ts"],
|
|
47
49
|
outdir: "./dist",
|
|
@@ -61,9 +63,9 @@ await Bun.build({
|
|
|
61
63
|
|
|
62
64
|
Embed version and build metadata directly into your executable:
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
<CodeGroup>
|
|
65
67
|
|
|
66
|
-
```ts
|
|
68
|
+
```ts src/version.ts icon="/icons/typescript.svg"
|
|
67
69
|
// These constants are replaced at build time
|
|
68
70
|
declare const BUILD_VERSION: string;
|
|
69
71
|
declare const BUILD_TIME: string;
|
|
@@ -78,21 +80,21 @@ export function getVersion() {
|
|
|
78
80
|
}
|
|
79
81
|
```
|
|
80
82
|
|
|
81
|
-
```sh
|
|
82
|
-
|
|
83
|
+
```sh Build command
|
|
84
|
+
bun build --compile \
|
|
83
85
|
--define BUILD_VERSION='"1.2.3"' \
|
|
84
86
|
--define BUILD_TIME='"2024-01-15T10:30:00Z"' \
|
|
85
87
|
--define GIT_COMMIT='"abc123"' \
|
|
86
88
|
src/cli.ts --outfile mycli
|
|
87
89
|
```
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
</CodeGroup>
|
|
90
92
|
|
|
91
93
|
### Feature flags
|
|
92
94
|
|
|
93
95
|
Use build-time constants to enable/disable features:
|
|
94
96
|
|
|
95
|
-
```ts
|
|
97
|
+
```ts src/version.ts icon="/icons/typescript.svg"
|
|
96
98
|
// Replaced at build time
|
|
97
99
|
declare const ENABLE_ANALYTICS: boolean;
|
|
98
100
|
declare const ENABLE_DEBUG: boolean;
|
|
@@ -111,17 +113,17 @@ if (ENABLE_DEBUG) {
|
|
|
111
113
|
|
|
112
114
|
```sh
|
|
113
115
|
# Production build - analytics enabled, debug disabled
|
|
114
|
-
|
|
116
|
+
bun build --compile --define ENABLE_ANALYTICS=true --define ENABLE_DEBUG=false src/app.ts --outfile app-prod
|
|
115
117
|
|
|
116
118
|
# Development build - both enabled
|
|
117
|
-
|
|
119
|
+
bun build --compile --define ENABLE_ANALYTICS=false --define ENABLE_DEBUG=true src/app.ts --outfile app-dev
|
|
118
120
|
```
|
|
119
121
|
|
|
120
122
|
### Configuration
|
|
121
123
|
|
|
122
124
|
Replace configuration objects at build time:
|
|
123
125
|
|
|
124
|
-
```ts
|
|
126
|
+
```ts src/version.ts icon="/icons/typescript.svg"
|
|
125
127
|
declare const CONFIG: {
|
|
126
128
|
apiUrl: string;
|
|
127
129
|
timeout: number;
|
|
@@ -135,7 +137,7 @@ const response = await fetch(CONFIG.apiUrl, {
|
|
|
135
137
|
```
|
|
136
138
|
|
|
137
139
|
```sh
|
|
138
|
-
|
|
140
|
+
bun build --compile --define 'CONFIG={"apiUrl":"https://api.example.com","timeout":5000,"retries":3}' src/app.ts --outfile app
|
|
139
141
|
```
|
|
140
142
|
|
|
141
143
|
---
|
|
@@ -162,7 +164,7 @@ Generate build-time constants from shell commands:
|
|
|
162
164
|
|
|
163
165
|
```sh
|
|
164
166
|
# Use git to get current commit and timestamp
|
|
165
|
-
|
|
167
|
+
bun build --compile \
|
|
166
168
|
--define BUILD_VERSION="\"$(git describe --tags --always)\"" \
|
|
167
169
|
--define BUILD_TIME="\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"" \
|
|
168
170
|
--define GIT_COMMIT="\"$(git rev-parse HEAD)\"" \
|
|
@@ -275,13 +277,13 @@ When building for multiple platforms, constants work the same way:
|
|
|
275
277
|
|
|
276
278
|
```sh
|
|
277
279
|
# Linux
|
|
278
|
-
|
|
280
|
+
bun build --compile --target=bun-linux-x64 --define PLATFORM='"linux"' src/app.ts --outfile app-linux
|
|
279
281
|
|
|
280
282
|
# macOS
|
|
281
|
-
|
|
283
|
+
bun build --compile --target=bun-darwin-x64 --define PLATFORM='"darwin"' src/app.ts --outfile app-macos
|
|
282
284
|
|
|
283
285
|
# Windows
|
|
284
|
-
|
|
286
|
+
bun build --compile --target=bun-windows-x64 --define PLATFORM='"windows"' src/app.ts --outfile app-windows.exe
|
|
285
287
|
```
|
|
286
288
|
|
|
287
289
|
---
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Install and run Bun in GitHub Actions
|
|
3
|
+
sidebarTitle: GitHub Actions
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Use the official [`setup-bun`](https://github.com/oven-sh/setup-bun) GitHub Action to install `bun` in your GitHub Actions runner.
|
|
6
8
|
|
|
7
|
-
```yaml
|
|
9
|
+
```yaml workflow.yml icon="file-code"
|
|
8
10
|
name: my-workflow
|
|
9
11
|
jobs:
|
|
10
12
|
my-job:
|
|
@@ -13,17 +15,19 @@ jobs:
|
|
|
13
15
|
steps:
|
|
14
16
|
# ...
|
|
15
17
|
- uses: actions/checkout@v4
|
|
16
|
-
|
|
18
|
+
- uses: oven-sh/setup-bun@v2 // [!code ++]
|
|
17
19
|
|
|
18
20
|
# run any `bun` or `bunx` command
|
|
19
|
-
|
|
21
|
+
- run: bun install // [!code ++]
|
|
22
|
+
- run: bun index.ts // [!code ++]
|
|
23
|
+
- run: bun run build // [!code ++]
|
|
20
24
|
```
|
|
21
25
|
|
|
22
26
|
---
|
|
23
27
|
|
|
24
28
|
To specify a version of Bun to install:
|
|
25
29
|
|
|
26
|
-
```yaml
|
|
30
|
+
```yaml workflow.yml icon="file-code"
|
|
27
31
|
name: my-workflow
|
|
28
32
|
jobs:
|
|
29
33
|
my-job:
|
|
@@ -32,8 +36,8 @@ jobs:
|
|
|
32
36
|
steps:
|
|
33
37
|
# ...
|
|
34
38
|
- uses: oven-sh/setup-bun@v2
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
with: // [!code ++]
|
|
40
|
+
bun-version: 1.2.0 # or "latest", "canary", <sha> // [!code ++]
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
---
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Codesign a single-file JavaScript executable on macOS
|
|
3
3
|
description: Fix the "can't be opened because it is from an unidentified developer" Gatekeeper warning when running your JavaScript executable.
|
|
4
|
+
sidebarTitle: Codesign on macOS
|
|
5
|
+
mode: center
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
Compile your executable using the `--compile` flag.
|
|
7
9
|
|
|
8
10
|
```sh
|
|
9
|
-
|
|
11
|
+
bun build --compile ./path/to/entry.ts --outfile myapp
|
|
10
12
|
```
|
|
11
13
|
|
|
12
14
|
---
|
|
13
15
|
|
|
14
16
|
List your available signing identities. One of these will be your signing identity that you pass to the `codesign` command. This command requires macOS.
|
|
15
17
|
|
|
16
|
-
```sh
|
|
17
|
-
|
|
18
|
+
```sh terminal icon="terminal"
|
|
19
|
+
security find-identity -v -p codesigning
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```txt
|
|
18
23
|
1. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Developer ID Application: Your Name (ZZZZZZZZZZ)"
|
|
19
24
|
1 valid identities found
|
|
20
25
|
```
|
|
@@ -23,7 +28,7 @@ $ security find-identity -v -p codesigning
|
|
|
23
28
|
|
|
24
29
|
Optional, but recommended: create an `entitlements.plist` file with the necessary permissions for the JavaScript engine to work correctly.
|
|
25
30
|
|
|
26
|
-
```xml
|
|
31
|
+
```xml entitlements.plist icon="file-code"
|
|
27
32
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
28
33
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
29
34
|
<plist version="1.0">
|
|
@@ -46,11 +51,11 @@ Optional, but recommended: create an `entitlements.plist` file with the necessar
|
|
|
46
51
|
|
|
47
52
|
Sign your executable using the `codesign` command and verify it works.
|
|
48
53
|
|
|
49
|
-
```bash
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
```bash terminal icon="terminal"
|
|
55
|
+
codesign --entitlements entitlements.plist -vvvv --deep --sign "XXXXXXXXXX" ./myapp --force
|
|
56
|
+
codesign -vvv --verify ./myapp
|
|
52
57
|
```
|
|
53
58
|
|
|
54
59
|
---
|
|
55
60
|
|
|
56
|
-
For more information on macOS codesigning, refer to [Apple's Code Signing documentation](https://developer.apple.com/documentation/security/code_signing_services). For details about creating single-file executables with Bun, see [Standalone Executables](/
|
|
61
|
+
For more information on macOS codesigning, refer to [Apple's Code Signing documentation](https://developer.apple.com/documentation/security/code_signing_services). For details about creating single-file executables with Bun, see [Standalone Executables](/bundler/executables). This guide requires Bun v1.2.4 or newer.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Define and replace static globals & constants
|
|
3
|
+
sidebarTitle: Define constants
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
The `--define` flag lets you declare statically-analyzable constants and globals. It replace all usages of an identifier or property in a JavaScript or TypeScript file with a constant value. This feature is supported at runtime and also in `bun build`. This is sort of similar to `#define` in C/C++, except for JavaScript.
|
|
6
8
|
|
|
7
|
-
```sh
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
```sh terminal icon="terminal"
|
|
10
|
+
bun --define process.env.NODE_ENV="'production'" src/index.ts # Runtime
|
|
11
|
+
bun build --define process.env.NODE_ENV="'production'" src/index.ts # Build
|
|
10
12
|
```
|
|
11
13
|
|
|
12
14
|
---
|
|
@@ -25,12 +27,13 @@ if (process.env.NODE_ENV === "production") {
|
|
|
25
27
|
|
|
26
28
|
Before the code reaches the JavaScript engine, Bun replaces `process.env.NODE_ENV` with `"production"`.
|
|
27
29
|
|
|
28
|
-
```ts
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
```ts
|
|
31
|
+
if ("production" === "production") {
|
|
32
|
+
// [!code ++]
|
|
33
|
+
console.log("Production mode");
|
|
34
|
+
} else {
|
|
35
|
+
console.log("Development mode");
|
|
36
|
+
}
|
|
34
37
|
```
|
|
35
38
|
|
|
36
39
|
---
|
|
@@ -39,12 +42,13 @@ It doesn't stop there. Bun's optimizing transpiler is smart enough to do some ba
|
|
|
39
42
|
|
|
40
43
|
Since `"production" === "production"` is always `true`, Bun replaces the entire expression with the `true` value.
|
|
41
44
|
|
|
42
|
-
```ts
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
```ts
|
|
46
|
+
if (true) {
|
|
47
|
+
// [!code ++]
|
|
48
|
+
console.log("Production mode");
|
|
49
|
+
} else {
|
|
50
|
+
console.log("Development mode");
|
|
51
|
+
}
|
|
48
52
|
```
|
|
49
53
|
|
|
50
54
|
---
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Delete directories
|
|
3
|
+
sidebarTitle: Delete directories
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
To recursively delete a directory and all its contents, use `rm` from `node:fs/promises`. This is like running `rm -rf` in JavaScript.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts delete-directory.ts icon="/icons/typescript.svg"
|
|
8
10
|
import { rm } from "node:fs/promises";
|
|
9
11
|
|
|
10
12
|
// Delete a directory and all its contents
|
|
@@ -20,7 +22,7 @@ These options configure the deletion behavior:
|
|
|
20
22
|
|
|
21
23
|
You can also use it without `force` to ensure the directory exists:
|
|
22
24
|
|
|
23
|
-
```ts
|
|
25
|
+
```ts delete-directory.ts icon="/icons/typescript.svg"
|
|
24
26
|
try {
|
|
25
27
|
await rm("path/to/directory", { recursive: true });
|
|
26
28
|
} catch (error) {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Delete files
|
|
3
|
+
sidebarTitle: Delete files
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
To delete a file, use `Bun.file(path).delete()`.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts delete-file.ts icon="/icons/typescript.svg"
|
|
8
10
|
// Delete a file
|
|
9
11
|
const file = Bun.file("path/to/file.txt");
|
|
10
12
|
await file.delete();
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Inspect memory usage using V8 heap snapshots
|
|
3
|
+
sidebarTitle: Heap snapshots
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Bun implements V8's heap snapshot API, which allows you to create snapshots of the heap at runtime. This helps debug memory leaks in your JavaScript/TypeScript application.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts snapshot.ts icon="/icons/typescript.svg"
|
|
8
10
|
import v8 from "node:v8";
|
|
9
11
|
|
|
10
12
|
// Creates a heap snapshot file with an auto-generated name
|
|
@@ -23,4 +25,4 @@ To view V8 heap snapshots in Chrome DevTools:
|
|
|
23
25
|
3. Click the "Load" button (folder icon)
|
|
24
26
|
4. Select your `.heapsnapshot` file
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
<Frame></Frame>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Import a HTML file as text
|
|
3
|
+
sidebarTitle: Import HTML
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
To import a `.html` file in Bun as a text file, use the `type: "text"` attribute in the import statement.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts file.ts icon="/icons/typescript.svg"
|
|
8
10
|
import html from "./file.html" with { type: "text" };
|
|
9
11
|
|
|
10
12
|
console.log(html); // <!DOCTYPE html><html><head>...
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Import a JSON file
|
|
3
|
+
sidebarTitle: Import JSON
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Bun natively supports `.json` imports.
|
|
6
8
|
|
|
7
|
-
```json
|
|
9
|
+
```json package.json icon="file-json"
|
|
8
10
|
{
|
|
9
11
|
"name": "bun",
|
|
10
12
|
"version": "1.0.0",
|
|
@@ -19,7 +21,7 @@ Bun natively supports `.json` imports.
|
|
|
19
21
|
|
|
20
22
|
Import the file like any other source file.
|
|
21
23
|
|
|
22
|
-
```ts
|
|
24
|
+
```ts data.ts icon="/icons/typescript.svg"
|
|
23
25
|
import data from "./package.json";
|
|
24
26
|
|
|
25
27
|
data.name; // => "bun"
|
|
@@ -31,7 +33,7 @@ data.author.name; // => "John Dough"
|
|
|
31
33
|
|
|
32
34
|
Bun also supports [Import Attributes](https://github.com/tc39/proposal-import-attributes/) and [JSON modules](https://github.com/tc39/proposal-json-modules) syntax.
|
|
33
35
|
|
|
34
|
-
```ts
|
|
36
|
+
```ts data.ts icon="/icons/typescript.svg"
|
|
35
37
|
import data from "./package.json" with { type: "json" };
|
|
36
38
|
|
|
37
39
|
data.name; // => "bun"
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Import a TOML file
|
|
3
|
+
sidebarTitle: Import TOML
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Bun natively supports importing `.toml` files.
|
|
6
8
|
|
|
7
|
-
```toml
|
|
9
|
+
```toml data.toml icon="file-code"
|
|
8
10
|
name = "bun"
|
|
9
11
|
version = "1.0.0"
|
|
10
12
|
|
|
@@ -17,7 +19,7 @@ email = "john@dough.com"
|
|
|
17
19
|
|
|
18
20
|
Import the file like any other source file.
|
|
19
21
|
|
|
20
|
-
```ts
|
|
22
|
+
```ts data.ts icon="/icons/typescript.svg"
|
|
21
23
|
import data from "./data.toml";
|
|
22
24
|
|
|
23
25
|
data.name; // => "bun"
|