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
package/docs/ecosystem/stric.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
[Stric](https://github.com/bunsvr) is a minimalist, fast web framework for Bun.
|
|
2
|
-
|
|
3
|
-
```ts#index.ts
|
|
4
|
-
import { Router } from '@stricjs/router';
|
|
5
|
-
|
|
6
|
-
// Export the fetch handler and serve with Bun
|
|
7
|
-
export default new Router()
|
|
8
|
-
// Return 'Hi' on every request
|
|
9
|
-
.get('/', () => new Response('Hi'));
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Stric provides support for [ArrowJS](https://www.arrow-js.com), a library for building reactive interfaces.
|
|
13
|
-
|
|
14
|
-
{% codetabs %}
|
|
15
|
-
|
|
16
|
-
```ts#src/App.ts
|
|
17
|
-
import { html } from '@stricjs/arrow/utils';
|
|
18
|
-
|
|
19
|
-
// Code inside this function can use web APIs
|
|
20
|
-
export function render() {
|
|
21
|
-
// Render a <p> element with text 'Hi'
|
|
22
|
-
html`<p>Hi</p>`;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// Set the path to handle
|
|
26
|
-
export const path = '/';
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
```ts#index.ts
|
|
30
|
-
import { PageRouter } from '@stricjs/arrow';
|
|
31
|
-
|
|
32
|
-
// Create a page router, build and serve directly
|
|
33
|
-
new PageRouter().serve();
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
{% /codetabs %}
|
|
37
|
-
|
|
38
|
-
For more info, see Stric's [documentation](https://stricjs.gitbook.io/docs).
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Use Prisma with Bun
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
{% callout %}
|
|
6
|
-
**Note** — At the moment Prisma needs Node.js to be installed to run certain generation code. Make sure Node.js is installed in the environment where you're running `bunx prisma` commands.
|
|
7
|
-
{% /callout %}
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Prisma works out of the box with Bun. First, create a directory and initialize it with `bun init`.
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
$ mkdir prisma-app
|
|
15
|
-
$ cd prisma-app
|
|
16
|
-
$ bun init
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
Then install the Prisma CLI (`prisma`) and Prisma Client (`@prisma/client`) as dependencies.
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
$ bun add -d prisma
|
|
25
|
-
$ bun add @prisma/client
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
We'll use the Prisma CLI with `bunx` to initialize our schema and migration directory. For simplicity we'll be using an in-memory SQLite database.
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
$ bunx --bun prisma init --datasource-provider sqlite
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
Open `prisma/schema.prisma` and add a simple `User` model.
|
|
39
|
-
|
|
40
|
-
```prisma-diff#prisma/schema.prisma
|
|
41
|
-
generator client {
|
|
42
|
-
provider = "prisma-client-js"
|
|
43
|
-
output = "../generated/prisma"
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
datasource db {
|
|
47
|
-
provider = "sqlite"
|
|
48
|
-
url = env("DATABASE_URL")
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
+ model User {
|
|
52
|
-
+ id Int @id @default(autoincrement())
|
|
53
|
-
+ email String @unique
|
|
54
|
-
+ name String?
|
|
55
|
-
+ }
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
Then generate and run initial migration.
|
|
61
|
-
|
|
62
|
-
This will generate a `.sql` migration file in `prisma/migrations`, create a new SQLite instance, and execute the migration against the new instance.
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
$ bunx prisma migrate dev --name init
|
|
66
|
-
Environment variables loaded from .env
|
|
67
|
-
Prisma schema loaded from prisma/schema.prisma
|
|
68
|
-
Datasource "db": SQLite database "dev.db" at "file:./dev.db"
|
|
69
|
-
|
|
70
|
-
SQLite database dev.db created at file:./dev.db
|
|
71
|
-
|
|
72
|
-
Applying migration `20230928182242_init`
|
|
73
|
-
|
|
74
|
-
The following migration(s) have been created and applied from new schema changes:
|
|
75
|
-
|
|
76
|
-
migrations/
|
|
77
|
-
└─ 20230928182242_init/
|
|
78
|
-
└─ migration.sql
|
|
79
|
-
|
|
80
|
-
Your database is now in sync with your schema.
|
|
81
|
-
|
|
82
|
-
✔ Generated Prisma Client (v6.11.1) to ./generated/prisma in 41ms
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
As indicated in the output, Prisma re-generates our _Prisma client_ whenever we execute a new migration. The client provides a fully typed API for reading and writing from our database. You can manually re-generate the client with the Prisma CLI.
|
|
88
|
-
|
|
89
|
-
```sh
|
|
90
|
-
$ bunx prisma generate
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
We can import the generated client from `@prisma/client`.
|
|
96
|
-
|
|
97
|
-
```ts#src/index.ts
|
|
98
|
-
import {PrismaClient} from "@prisma/client";
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
Let's write a simple script to create a new user, then count the number of users in the database.
|
|
104
|
-
|
|
105
|
-
```ts#index.ts
|
|
106
|
-
import { PrismaClient } from "@prisma/client";
|
|
107
|
-
|
|
108
|
-
const prisma = new PrismaClient();
|
|
109
|
-
|
|
110
|
-
// create a new user
|
|
111
|
-
await prisma.user.create({
|
|
112
|
-
data: {
|
|
113
|
-
name: "John Dough",
|
|
114
|
-
email: `john-${Math.random()}@example.com`,
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// count the number of users
|
|
119
|
-
const count = await prisma.user.count();
|
|
120
|
-
console.log(`There are ${count} users in the database.`);
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
Let's run this script with `bun run`. Each time we run it, a new user is created.
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
$ bun run index.ts
|
|
129
|
-
Created john-0.12802932895402364@example.com
|
|
130
|
-
There are 1 users in the database.
|
|
131
|
-
$ bun run index.ts
|
|
132
|
-
Created john-0.8671308799782803@example.com
|
|
133
|
-
There are 2 users in the database.
|
|
134
|
-
$ bun run index.ts
|
|
135
|
-
Created john-0.4465968383115295@example.com
|
|
136
|
-
There are 3 users in the database.
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
That's it! Now that you've set up Prisma using Bun, we recommend referring to the [official Prisma docs](https://www.prisma.io/docs/concepts/components/prisma-client) as you continue to develop your application.
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Deploy a Bun application on Render
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[Render](https://render.com/) is a cloud platform that lets you flexibly build, deploy, and scale your apps.
|
|
6
|
-
|
|
7
|
-
It offers features like auto deploys from GitHub, a global CDN, private networks, automatic HTTPS setup, and managed PostgreSQL and Redis.
|
|
8
|
-
|
|
9
|
-
Render supports Bun natively. You can deploy Bun apps as web services, background workers, cron jobs, and more.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
As an example, let's deploy a simple Express HTTP server to Render.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
Create a new GitHub repo named `myapp`. Git clone it locally.
|
|
18
|
-
|
|
19
|
-
```sh
|
|
20
|
-
$ git clone git@github.com:my-github-username/myapp.git
|
|
21
|
-
$ cd myapp
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
Add the Express library.
|
|
27
|
-
|
|
28
|
-
```sh
|
|
29
|
-
$ bun add express
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
Define a simple server with Express:
|
|
35
|
-
|
|
36
|
-
```ts#app.ts
|
|
37
|
-
import express from "express";
|
|
38
|
-
|
|
39
|
-
const app = express();
|
|
40
|
-
const port = process.env.PORT || 3001;
|
|
41
|
-
|
|
42
|
-
app.get("/", (req, res) => {
|
|
43
|
-
res.send("Hello World!");
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
app.listen(port, () => {
|
|
47
|
-
console.log(`Listening on port ${port}...`);
|
|
48
|
-
});
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
Commit your changes and push to GitHub.
|
|
54
|
-
|
|
55
|
-
```sh
|
|
56
|
-
$ git add app.ts bun.lock package.json
|
|
57
|
-
$ git commit -m "Create simple Express app"
|
|
58
|
-
$ git push origin main
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
In your [Render Dashboard](https://dashboard.render.com/), click `New` > `Web Service` and connect your `myapp` repo.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
In the Render UI, provide the following values during web service creation:
|
|
68
|
-
|
|
69
|
-
| | |
|
|
70
|
-
| ----------------- | ------------- |
|
|
71
|
-
| **Runtime** | `Node` |
|
|
72
|
-
| **Build Command** | `bun install` |
|
|
73
|
-
| **Start Command** | `bun app.ts` |
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
That's it! Your web service will be live at its assigned `onrender.com` URL as soon as the build finishes.
|
|
78
|
-
|
|
79
|
-
You can view the [deploy logs](https://docs.render.com/logging#logs-for-an-individual-deploy-or-job) for details. Refer to [Render's documentation](https://docs.render.com/deploys) for a complete overview of deploying on Render.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Add a Git dependency
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Bun supports directly adding GitHub repositories as dependencies of your project.
|
|
6
|
-
|
|
7
|
-
```sh
|
|
8
|
-
$ bun add github:lodash/lodash
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
This will add the following line to your `package.json`:
|
|
14
|
-
|
|
15
|
-
```json-diff#package.json
|
|
16
|
-
{
|
|
17
|
-
"dependencies": {
|
|
18
|
-
+ "lodash": "github:lodash/lodash"
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
Bun supports a number of protocols for specifying Git dependencies.
|
|
26
|
-
|
|
27
|
-
```sh
|
|
28
|
-
$ bun add git+https://github.com/lodash/lodash.git
|
|
29
|
-
$ bun add git+ssh://github.com/lodash/lodash.git#4.17.21
|
|
30
|
-
$ bun add git@github.com:lodash/lodash.git
|
|
31
|
-
$ bun add github:colinhacks/zod
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
See [Docs > Package manager](https://bun.com/docs/cli/install) for complete documentation of Bun's package manager.
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Spy on methods in `bun test`
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use the `spyOn` utility to track method calls with Bun's test runner.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
import { test, expect, spyOn } from "bun:test";
|
|
9
|
-
|
|
10
|
-
const leo = {
|
|
11
|
-
name: "Leonardo",
|
|
12
|
-
sayHi(thing: string) {
|
|
13
|
-
console.log(`Sup I'm ${this.name} and I like ${thing}`);
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const spy = spyOn(leo, "sayHi");
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
Once the spy is created, it can be used to write `expect` assertions relating to method calls.
|
|
23
|
-
|
|
24
|
-
```ts-diff
|
|
25
|
-
import { test, expect, spyOn } from "bun:test";
|
|
26
|
-
|
|
27
|
-
const leo = {
|
|
28
|
-
name: "Leonardo",
|
|
29
|
-
sayHi(thing: string) {
|
|
30
|
-
console.log(`Sup I'm ${this.name} and I like ${thing}`);
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const spy = spyOn(leo, "sayHi");
|
|
35
|
-
|
|
36
|
-
+ test("turtles", ()=>{
|
|
37
|
-
+ expect(spy).toHaveBeenCalledTimes(0);
|
|
38
|
-
+ leo.sayHi("pizza");
|
|
39
|
-
+ expect(spy).toHaveBeenCalledTimes(1);
|
|
40
|
-
+ expect(spy.mock.calls).toEqual([[ "pizza" ]]);
|
|
41
|
-
+ })
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
See [Docs > Test Runner > Mocks](https://bun.sh/docs/test/mocks) for complete documentation on mocking with the Bun test runner.
|
package/docs/install/index.md
DELETED
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
The `bun` CLI contains an `npm`-compatible package manager designed to be a faster replacement for existing package management tools like `npm`, `yarn`, and `pnpm`. It's designed for Node.js compatibility; use it in any Bun or Node.js project.
|
|
2
|
-
|
|
3
|
-
{% callout %}
|
|
4
|
-
|
|
5
|
-
**⚡️ 80x faster** — Switch from `npm install` to `bun install` in any Node.js project to make your installations up to 80x faster.
|
|
6
|
-
|
|
7
|
-
{% image src="https://user-images.githubusercontent.com/709451/147004342-571b6123-17a9-49a2-8bfd-dcfc5204047e.png" height="200" /%}
|
|
8
|
-
|
|
9
|
-
{% /callout %}
|
|
10
|
-
|
|
11
|
-
{% details summary="For Linux users" %}
|
|
12
|
-
The minimum Linux Kernel version is 5.1. If you're on Linux kernel 5.1 - 5.5, `bun install` should still work, but HTTP requests will be slow due to a lack of support for io_uring's `connect()` operation.
|
|
13
|
-
|
|
14
|
-
If you're using Ubuntu 20.04, here's how to install a [newer kernel](https://wiki.ubuntu.com/Kernel/LTSEnablementStack):
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# If this returns a version >= 5.6, you don't need to do anything
|
|
18
|
-
uname -r
|
|
19
|
-
|
|
20
|
-
# Install the official Ubuntu hardware enablement kernel
|
|
21
|
-
sudo apt install --install-recommends linux-generic-hwe-20.04
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
{% /details %}
|
|
25
|
-
|
|
26
|
-
## Manage dependencies
|
|
27
|
-
|
|
28
|
-
### `bun install`
|
|
29
|
-
|
|
30
|
-
To install all dependencies of a project:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
$ bun install
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
On Linux, `bun install` tends to install packages 20-100x faster than `npm install`. On macOS, it's more like 4-80x.
|
|
37
|
-
|
|
38
|
-

|
|
39
|
-
|
|
40
|
-
Running `bun install` will:
|
|
41
|
-
|
|
42
|
-
- **Install** all `dependencies`, `devDependencies`, and `optionalDependencies`. Bun will install `peerDependencies` by default.
|
|
43
|
-
- **Run** your project's `{pre|post}install` scripts at the appropriate time. For security reasons Bun _does not execute_ lifecycle scripts of installed dependencies.
|
|
44
|
-
- **Write** a `bun.lock` lockfile to the project root.
|
|
45
|
-
|
|
46
|
-
To install in production mode (i.e. without `devDependencies`):
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
$ bun install --production
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
To install dependencies without allowing changes to lockfile (useful on CI):
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
$ bun install --frozen-lockfile
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
To exclude dependency types from installing, use `--omit` with `dev`, `optional`, or `peer`:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Disable devDependencies and optionalDependencies
|
|
62
|
-
$ bun install --omit=dev --omit=optional
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
To perform a dry run (i.e. don't actually install anything or update the lockfile):
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
$ bun install --dry-run
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
To generate a lockfile without install packages:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
$ bun install --lockfile-only
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
To modify logging verbosity:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
$ bun install --verbose # debug logging
|
|
81
|
-
$ bun install --silent # no logging
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
To use isolated installs instead of the default hoisted strategy:
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
$ bun install --linker isolated
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Isolated installs create strict dependency isolation similar to pnpm, preventing phantom dependencies and ensuring more deterministic builds. For complete documentation, see [Isolated installs](https://bun.com/docs/install/isolated).
|
|
91
|
-
|
|
92
|
-
To protect against supply chain attacks, set a minimum age (in seconds) for package versions:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
$ bun install --minimum-release-age 259200 # 3 days
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
{% details summary="Configuring behavior" %}
|
|
99
|
-
The default behavior of `bun install` can be configured in `bunfig.toml`:
|
|
100
|
-
|
|
101
|
-
```toml
|
|
102
|
-
[install]
|
|
103
|
-
|
|
104
|
-
# whether to install optionalDependencies
|
|
105
|
-
optional = true
|
|
106
|
-
|
|
107
|
-
# whether to install devDependencies
|
|
108
|
-
dev = true
|
|
109
|
-
|
|
110
|
-
# whether to install peerDependencies
|
|
111
|
-
peer = true
|
|
112
|
-
|
|
113
|
-
# equivalent to `--production` flag
|
|
114
|
-
production = false
|
|
115
|
-
|
|
116
|
-
# equivalent to `--save-text-lockfile` flag
|
|
117
|
-
saveTextLockfile = false
|
|
118
|
-
|
|
119
|
-
# equivalent to `--frozen-lockfile` flag
|
|
120
|
-
frozenLockfile = false
|
|
121
|
-
|
|
122
|
-
# equivalent to `--dry-run` flag
|
|
123
|
-
dryRun = false
|
|
124
|
-
|
|
125
|
-
# equivalent to `--concurrent-scripts` flag
|
|
126
|
-
concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
|
|
127
|
-
|
|
128
|
-
# installation strategy: "hoisted" or "isolated"
|
|
129
|
-
# default: "hoisted"
|
|
130
|
-
linker = "hoisted"
|
|
131
|
-
|
|
132
|
-
# minimum package age in seconds (protects against supply chain attacks)
|
|
133
|
-
minimumReleaseAge = 259200 # 3 days
|
|
134
|
-
|
|
135
|
-
# exclude packages from age requirement
|
|
136
|
-
minimumReleaseAgeExcludes = ["@types/node", "typescript"]
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
{% /details %}
|
|
140
|
-
|
|
141
|
-
### `bun add`
|
|
142
|
-
|
|
143
|
-
To add a particular package:
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
$ bun add preact
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
To specify a version, version range, or tag:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
$ bun add zod@3.20.0
|
|
153
|
-
$ bun add zod@^3.0.0
|
|
154
|
-
$ bun add zod@latest
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
To add a package as a dev dependency (`"devDependencies"`):
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
$ bun add --dev @types/react
|
|
161
|
-
$ bun add -d @types/react
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
To add a package as an optional dependency (`"optionalDependencies"`):
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
$ bun add --optional lodash
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
To add a package as a peer dependency (`"peerDependencies"`):
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
$ bun add --peer @types/bun
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
To install a package globally:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
$ bun add --global cowsay # or `bun add -g cowsay`
|
|
180
|
-
$ cowsay "Bun!"
|
|
181
|
-
______
|
|
182
|
-
< Bun! >
|
|
183
|
-
------
|
|
184
|
-
\ ^__^
|
|
185
|
-
\ (oo)\_______
|
|
186
|
-
(__)\ )\/\
|
|
187
|
-
||----w |
|
|
188
|
-
|| ||
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
{% details summary="Configuring global installation behavior" %}
|
|
192
|
-
|
|
193
|
-
```toml
|
|
194
|
-
[install]
|
|
195
|
-
# where `bun install --global` installs packages
|
|
196
|
-
globalDir = "~/.bun/install/global"
|
|
197
|
-
|
|
198
|
-
# where globally-installed package bins are linked
|
|
199
|
-
globalBinDir = "~/.bun/bin"
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
{% /details %}
|
|
203
|
-
To view a complete list of options for a given command:
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
$ bun add --help
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### `bun remove`
|
|
210
|
-
|
|
211
|
-
To remove a dependency:
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
$ bun remove preact
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
## Git dependencies
|
|
218
|
-
|
|
219
|
-
To add a dependency from a git repository:
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
$ bun install git@github.com:moment/moment.git
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Bun supports a variety of protocols, including [`github`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#github-urls), [`git`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#git-urls-as-dependencies), `git+ssh`, `git+https`, and many more.
|
|
226
|
-
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"dependencies": {
|
|
230
|
-
"dayjs": "git+https://github.com/iamkun/dayjs.git",
|
|
231
|
-
"lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
|
|
232
|
-
"moment": "git@github.com:moment/moment.git",
|
|
233
|
-
"zod": "github:colinhacks/zod"
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## Tarball dependencies
|
|
239
|
-
|
|
240
|
-
A package name can correspond to a publicly hosted `.tgz` file. During `bun install`, Bun will download and install the package from the specified tarball URL, rather than from the package registry.
|
|
241
|
-
|
|
242
|
-
```json#package.json
|
|
243
|
-
{
|
|
244
|
-
"dependencies": {
|
|
245
|
-
"zod": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz"
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
```
|