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,6 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HTML & static sites
|
|
3
|
+
description: Build static sites, landing pages, and web applications with Bun's bundler
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Bun's bundler has first-class support for HTML. Build static sites, landing pages, and web applications with zero configuration. Just point Bun at your HTML file and it handles everything else.
|
|
2
7
|
|
|
3
|
-
```html
|
|
8
|
+
```html title="index.html" icon="file-code"
|
|
4
9
|
<!doctype html>
|
|
5
10
|
<html>
|
|
6
11
|
<head>
|
|
@@ -15,7 +20,16 @@ Bun's bundler has first-class support for HTML. Build static sites, landing page
|
|
|
15
20
|
|
|
16
21
|
To get started, pass HTML files to `bun`.
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
```bash terminal icon="terminal"
|
|
24
|
+
bun ./index.html
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Bun v1.2.20
|
|
29
|
+
ready in 6.62ms
|
|
30
|
+
→ http://localhost:3000/
|
|
31
|
+
Press h + Enter to show shortcuts
|
|
32
|
+
```
|
|
19
33
|
|
|
20
34
|
Bun's development server provides powerful features with zero configuration:
|
|
21
35
|
|
|
@@ -26,19 +40,26 @@ Bun's development server provides powerful features with zero configuration:
|
|
|
26
40
|
- **Plugins** - Plugins for TailwindCSS and more
|
|
27
41
|
- **ESM & CommonJS** - Use ESM and CommonJS in your JavaScript, TypeScript, and JSX files
|
|
28
42
|
- **CSS Bundling & Minification** - Bundles CSS from `<link>` tags and `@import` statements
|
|
29
|
-
- **Asset Management**
|
|
30
|
-
- Automatic copying & hashing of images and assets
|
|
31
|
-
- Rewrites asset paths in JavaScript, CSS, and HTML
|
|
43
|
+
- **Asset Management** - Automatic copying & hashing of images and assets; Rewrites asset paths in JavaScript, CSS, and HTML
|
|
32
44
|
|
|
33
45
|
## Single Page Apps (SPA)
|
|
34
46
|
|
|
35
|
-
When you pass a single
|
|
47
|
+
When you pass a single `.html` file to Bun, Bun will use it as a fallback route for all paths. This makes it perfect for single page apps that use client-side routing:
|
|
48
|
+
|
|
49
|
+
```bash terminal icon="terminal"
|
|
50
|
+
bun index.html
|
|
51
|
+
```
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
```
|
|
54
|
+
Bun v1.2.20
|
|
55
|
+
ready in 6.62ms
|
|
56
|
+
→ http://localhost:3000/
|
|
57
|
+
Press h + Enter to show shortcuts
|
|
58
|
+
```
|
|
38
59
|
|
|
39
60
|
Your React or other SPA will work out of the box — no configuration needed. All routes like `/about`, `/users/123`, etc. will serve the same HTML file, letting your client-side router handle the navigation.
|
|
40
61
|
|
|
41
|
-
```html
|
|
62
|
+
```html title="index.html" icon="file-code"
|
|
42
63
|
<!doctype html>
|
|
43
64
|
<html>
|
|
44
65
|
<head>
|
|
@@ -53,9 +74,21 @@ Your React or other SPA will work out of the box — no configuration needed. Al
|
|
|
53
74
|
|
|
54
75
|
## Multi-page apps (MPA)
|
|
55
76
|
|
|
56
|
-
Some projects have several separate routes or HTML files as entry points. To support multiple entry points, pass them all to `bun
|
|
77
|
+
Some projects have several separate routes or HTML files as entry points. To support multiple entry points, pass them all to `bun`:
|
|
57
78
|
|
|
58
|
-
|
|
79
|
+
```bash terminal icon="terminal"
|
|
80
|
+
bun ./index.html ./about.html
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```txt
|
|
84
|
+
Bun v1.2.20
|
|
85
|
+
ready in 6.62ms
|
|
86
|
+
→ http://localhost:3000/
|
|
87
|
+
Routes:
|
|
88
|
+
/ ./index.html
|
|
89
|
+
/about ./about.html
|
|
90
|
+
Press h + Enter to show shortcuts
|
|
91
|
+
```
|
|
59
92
|
|
|
60
93
|
This will serve:
|
|
61
94
|
|
|
@@ -66,19 +99,44 @@ This will serve:
|
|
|
66
99
|
|
|
67
100
|
To specify multiple files, you can use glob patterns that end in `.html`:
|
|
68
101
|
|
|
69
|
-
|
|
102
|
+
```bash terminal icon="terminal"
|
|
103
|
+
bun ./**/*.html
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Bun v1.2.20
|
|
108
|
+
ready in 6.62ms
|
|
109
|
+
→ http://localhost:3000/
|
|
110
|
+
Routes:
|
|
111
|
+
/ ./index.html
|
|
112
|
+
/about ./about.html
|
|
113
|
+
Press h + Enter to show shortcuts
|
|
114
|
+
```
|
|
70
115
|
|
|
71
116
|
### Path normalization
|
|
72
117
|
|
|
73
118
|
The base path is chosen from the longest common prefix among all the files.
|
|
74
119
|
|
|
75
|
-
|
|
120
|
+
```bash terminal icon="terminal"
|
|
121
|
+
bun ./index.html ./about/index.html ./about/foo/index.html
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Bun v1.2.20
|
|
126
|
+
ready in 6.62ms
|
|
127
|
+
→ http://localhost:3000/
|
|
128
|
+
Routes:
|
|
129
|
+
/ ./index.html
|
|
130
|
+
/about ./about/index.html
|
|
131
|
+
/about/foo ./about/foo/index.html
|
|
132
|
+
Press h + Enter to show shortcuts
|
|
133
|
+
```
|
|
76
134
|
|
|
77
135
|
## JavaScript, TypeScript, and JSX
|
|
78
136
|
|
|
79
|
-
Bun's transpiler natively implements JavaScript, TypeScript, and JSX support.
|
|
137
|
+
Bun's transpiler natively implements JavaScript, TypeScript, and JSX support. Learn more about loaders in Bun.
|
|
80
138
|
|
|
81
|
-
Bun's transpiler is also used at runtime
|
|
139
|
+
<Note>Bun's transpiler is also used at runtime.</Note>
|
|
82
140
|
|
|
83
141
|
### ES Modules & CommonJS
|
|
84
142
|
|
|
@@ -86,7 +144,7 @@ You can use ESM and CJS in your JavaScript, TypeScript, and JSX files. Bun will
|
|
|
86
144
|
|
|
87
145
|
There is no pre-build or separate optimization step. It's all done at the same time.
|
|
88
146
|
|
|
89
|
-
Learn more about
|
|
147
|
+
Learn more about module resolution in Bun.
|
|
90
148
|
|
|
91
149
|
## CSS
|
|
92
150
|
|
|
@@ -96,7 +154,9 @@ It's also a CSS bundler. You can use `@import` in your CSS files to import other
|
|
|
96
154
|
|
|
97
155
|
For example:
|
|
98
156
|
|
|
99
|
-
|
|
157
|
+
<CodeGroup>
|
|
158
|
+
|
|
159
|
+
```css styles.css icon="file-code"
|
|
100
160
|
@import "./abc.css";
|
|
101
161
|
|
|
102
162
|
.container {
|
|
@@ -104,15 +164,17 @@ For example:
|
|
|
104
164
|
}
|
|
105
165
|
```
|
|
106
166
|
|
|
107
|
-
```css
|
|
167
|
+
```css abc.css
|
|
108
168
|
body {
|
|
109
169
|
background-color: red;
|
|
110
170
|
}
|
|
111
171
|
```
|
|
112
172
|
|
|
173
|
+
</CodeGroup>
|
|
174
|
+
|
|
113
175
|
This outputs:
|
|
114
176
|
|
|
115
|
-
```css
|
|
177
|
+
```css
|
|
116
178
|
body {
|
|
117
179
|
background-color: red;
|
|
118
180
|
}
|
|
@@ -126,7 +188,7 @@ body {
|
|
|
126
188
|
|
|
127
189
|
You can reference local assets in your CSS files.
|
|
128
190
|
|
|
129
|
-
```css
|
|
191
|
+
```css styles.css icon="file-code"
|
|
130
192
|
body {
|
|
131
193
|
background-image: url("./logo.png");
|
|
132
194
|
}
|
|
@@ -134,7 +196,7 @@ body {
|
|
|
134
196
|
|
|
135
197
|
This will copy `./logo.png` to the output directory and rewrite the path in the CSS file to include a content hash.
|
|
136
198
|
|
|
137
|
-
```css
|
|
199
|
+
```css styles.css icon="file-code"
|
|
138
200
|
body {
|
|
139
201
|
background-image: url("./logo-[ABC123].png");
|
|
140
202
|
}
|
|
@@ -144,7 +206,7 @@ body {
|
|
|
144
206
|
|
|
145
207
|
To associate a CSS file with a JavaScript file, you can import it in your JavaScript file.
|
|
146
208
|
|
|
147
|
-
```ts
|
|
209
|
+
```ts app.ts icon="/icons/typescript.svg"
|
|
148
210
|
import "./styles.css";
|
|
149
211
|
import "./more-styles.css";
|
|
150
212
|
```
|
|
@@ -159,84 +221,57 @@ The dev server supports plugins.
|
|
|
159
221
|
|
|
160
222
|
To use TailwindCSS, install the `bun-plugin-tailwind` plugin:
|
|
161
223
|
|
|
162
|
-
```bash
|
|
224
|
+
```bash terminal icon="terminal"
|
|
163
225
|
# Or any npm client
|
|
164
|
-
|
|
226
|
+
bun install --dev bun-plugin-tailwind
|
|
165
227
|
```
|
|
166
228
|
|
|
167
229
|
Then, add the plugin to your `bunfig.toml`:
|
|
168
230
|
|
|
169
|
-
```toml
|
|
231
|
+
```toml title="bunfig.toml" icon="settings"
|
|
170
232
|
[serve.static]
|
|
171
233
|
plugins = ["bun-plugin-tailwind"]
|
|
172
234
|
```
|
|
173
235
|
|
|
174
|
-
Then, reference TailwindCSS in your HTML via `<link>` tag, `@import` in CSS, or
|
|
175
|
-
|
|
176
|
-
{% codetabs %}
|
|
177
|
-
|
|
178
|
-
```html#index.html
|
|
179
|
-
<!-- Reference TailwindCSS in your HTML -->
|
|
180
|
-
<link rel="stylesheet" href="tailwindcss" />
|
|
181
|
-
```
|
|
236
|
+
Then, reference TailwindCSS in your HTML via `<link>` tag, `@import` in CSS, or import in JavaScript.
|
|
182
237
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
import "tailwindcss";
|
|
191
|
-
|
|
238
|
+
<Tabs>
|
|
239
|
+
<Tab title="index.html">
|
|
240
|
+
```html title="index.html" icon="file-code"
|
|
241
|
+
{/* Reference TailwindCSS in your HTML */}
|
|
242
|
+
<link rel="stylesheet" href="tailwindcss" />
|
|
243
|
+
```
|
|
244
|
+
</Tab>
|
|
245
|
+
<Tab title="styles.css">```css title="styles.css" icon="file-code" @import "tailwindcss"; ```</Tab>
|
|
246
|
+
<Tab title="app.ts">```ts title="app.ts" icon="/icons/typescript.svg" import "tailwindcss"; ```</Tab>
|
|
247
|
+
</Tabs>
|
|
192
248
|
|
|
193
|
-
|
|
249
|
+
<Info>Only one of those are necessary, not all three.</Info>
|
|
194
250
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
### Echo console logs from browser to terminal
|
|
251
|
+
## Echo console logs from browser to terminal
|
|
198
252
|
|
|
199
253
|
Bun's dev server supports streaming console logs from the browser to the terminal.
|
|
200
254
|
|
|
201
255
|
To enable, pass the `--console` CLI flag.
|
|
202
256
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
Internally, this reuses the existing WebSocket connection from hot module reloading to send the logs.
|
|
208
|
-
|
|
209
|
-
### Edit files in the browser
|
|
210
|
-
|
|
211
|
-
Bun's frontend dev server has support for [Automatic Workspace Folders](https://chromium.googlesource.com/devtools/devtools-frontend/+/main/docs/ecosystem/automatic_workspace_folders.md) in Chrome DevTools, which lets you save edits to files in the browser.
|
|
212
|
-
|
|
213
|
-
{% image src="/images/bun-chromedevtools.gif" alt="Bun's frontend dev server has support for Automatic Workspace Folders in Chrome DevTools, which lets you save edits to files in the browser." /%}
|
|
214
|
-
|
|
215
|
-
{% details summary="How it works" %}
|
|
216
|
-
|
|
217
|
-
Bun's dev server automatically adds a `/.well-known/appspecific/com.chrome.devtools.json` route to the server.
|
|
218
|
-
|
|
219
|
-
This route returns a JSON object with the following shape:
|
|
257
|
+
```bash terminal icon="terminal"
|
|
258
|
+
bun ./index.html --console
|
|
259
|
+
```
|
|
220
260
|
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
}
|
|
261
|
+
```
|
|
262
|
+
Bun v1.2.20
|
|
263
|
+
ready in 6.62ms
|
|
264
|
+
→ http://localhost:3000/
|
|
265
|
+
Press h + Enter to show shortcuts
|
|
228
266
|
```
|
|
229
267
|
|
|
230
|
-
|
|
268
|
+
Each call to `console.log` or `console.error` will be broadcast to the terminal that started the server. This is useful to see errors from the browser in the same place you run your server. This is also useful for AI agents that watch terminal output.
|
|
231
269
|
|
|
232
|
-
|
|
233
|
-
2. Hot Module Reloading is enabled.
|
|
234
|
-
3. The `chromeDevToolsAutomaticWorkspaceFolders` flag is set to `true` or `undefined`.
|
|
235
|
-
4. There are no other routes that match the request.
|
|
270
|
+
Internally, this reuses the existing WebSocket connection from hot module reloading to send the logs.
|
|
236
271
|
|
|
237
|
-
|
|
272
|
+
## Edit files in the browser
|
|
238
273
|
|
|
239
|
-
|
|
274
|
+
Bun's frontend dev server has support for Automatic Workspace Folders in Chrome DevTools, which lets you save edits to files in the browser.
|
|
240
275
|
|
|
241
276
|
## Keyboard Shortcuts
|
|
242
277
|
|
|
@@ -244,45 +279,45 @@ While the server is running:
|
|
|
244
279
|
|
|
245
280
|
- `o + Enter` - Open in browser
|
|
246
281
|
- `c + Enter` - Clear console
|
|
247
|
-
- `q + Enter` (or Ctrl+C) - Quit server
|
|
282
|
+
- `q + Enter` (or `Ctrl+C`) - Quit server
|
|
248
283
|
|
|
249
284
|
## Build for Production
|
|
250
285
|
|
|
251
286
|
When you're ready to deploy, use `bun build` to create optimized production bundles:
|
|
252
287
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
288
|
+
<Tabs>
|
|
289
|
+
<Tab title="CLI">
|
|
290
|
+
```bash terminal icon="terminal"
|
|
291
|
+
bun build ./index.html --minify --outdir=dist
|
|
292
|
+
```
|
|
293
|
+
</Tab>
|
|
294
|
+
<Tab title="API">
|
|
295
|
+
```ts title="build.ts" icon="/icons/typescript.svg"
|
|
296
|
+
await Bun.build({
|
|
297
|
+
entrypoints: ["./index.html"],
|
|
298
|
+
outdir: "./dist",
|
|
299
|
+
minify: true,
|
|
300
|
+
});
|
|
301
|
+
```
|
|
302
|
+
</Tab>
|
|
303
|
+
</Tabs>
|
|
304
|
+
|
|
305
|
+
<Warning>
|
|
306
|
+
Currently, plugins are only supported through `Bun.build`'s API or through `bunfig.toml` with the frontend dev server
|
|
307
|
+
- not yet supported in `bun build`'s CLI.
|
|
308
|
+
</Warning>
|
|
274
309
|
|
|
275
310
|
### Watch Mode
|
|
276
311
|
|
|
277
312
|
You can run `bun build --watch` to watch for changes and rebuild automatically. This works nicely for library development.
|
|
278
313
|
|
|
279
|
-
You've never seen a watch mode this fast
|
|
314
|
+
<Info>You've never seen a watch mode this fast.</Info>
|
|
280
315
|
|
|
281
|
-
|
|
316
|
+
## Plugin API
|
|
282
317
|
|
|
283
318
|
Need more control? Configure the bundler through the JavaScript API and use Bun's builtin `HTMLRewriter` to preprocess HTML.
|
|
284
319
|
|
|
285
|
-
```ts
|
|
320
|
+
```ts title="build.ts" icon="/icons/typescript.svg"
|
|
286
321
|
await Bun.build({
|
|
287
322
|
entrypoints: ["./index.html"],
|
|
288
323
|
outdir: "./dist",
|
|
@@ -322,28 +357,30 @@ await Bun.build({
|
|
|
322
357
|
|
|
323
358
|
Bun automatically handles all common web assets:
|
|
324
359
|
|
|
325
|
-
- Scripts (`<script src>`) are run through Bun's JavaScript/TypeScript/JSX bundler
|
|
326
|
-
- Stylesheets (`<link rel="stylesheet">`) are run through Bun's CSS parser & bundler
|
|
327
|
-
- Images (`<img>`, `<picture>`) are copied and hashed
|
|
328
|
-
- Media (`<video>`, `<audio>`, `<source>`) are copied and hashed
|
|
360
|
+
- **Scripts** (`<script src>`) are run through Bun's JavaScript/TypeScript/JSX bundler
|
|
361
|
+
- **Stylesheets** (`<link rel="stylesheet">`) are run through Bun's CSS parser & bundler
|
|
362
|
+
- **Images** (`<img>`, `<picture>`) are copied and hashed
|
|
363
|
+
- **Media** (`<video>`, `<audio>`, `<source>`) are copied and hashed
|
|
329
364
|
- Any `<link>` tag with an `href` attribute pointing to a local file is rewritten to the new path, and hashed
|
|
330
365
|
|
|
331
366
|
All paths are resolved relative to your HTML file, making it easy to organize your project however you want.
|
|
332
367
|
|
|
333
|
-
|
|
334
|
-
|
|
368
|
+
<Warning>
|
|
369
|
+
**This is a work in progress**
|
|
335
370
|
- Need more plugins
|
|
336
371
|
- Need more configuration options for things like asset handling
|
|
337
372
|
- Need a way to configure CORS, headers, etc.
|
|
338
373
|
|
|
339
|
-
If you want to submit a PR, most of the
|
|
374
|
+
If you want to submit a PR, most of the code is [here](https://github.com/oven-sh/bun/blob/main/src/bun.js/api/bun/html-rewriter.ts). You could even copy paste that file into your project and use it as a starting point.
|
|
375
|
+
|
|
376
|
+
</Warning>
|
|
340
377
|
|
|
341
378
|
## How this works
|
|
342
379
|
|
|
343
380
|
This is a small wrapper around Bun's support for HTML imports in JavaScript.
|
|
344
381
|
|
|
345
|
-
|
|
382
|
+
## Adding a backend to your frontend
|
|
346
383
|
|
|
347
|
-
To add a backend to your frontend, you can use the
|
|
384
|
+
To add a backend to your frontend, you can use the "routes" option in `Bun.serve`.
|
|
348
385
|
|
|
349
|
-
Learn more in
|
|
386
|
+
Learn more in the full-stack docs.
|