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,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Deploy a Bun application on Railway
|
|
3
3
|
description: Deploy Bun applications to Railway with this step-by-step guide covering CLI and dashboard methods, optional PostgreSQL setup, and automatic SSL configuration.
|
|
4
|
+
sidebarTitle: Deploy on Railway
|
|
5
|
+
mode: center
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
Railway is an infrastructure platform where you can provision infrastructure, develop with that infrastructure locally, and then deploy to the cloud. It enables instant deployments from GitHub with zero configuration, automatic SSL, and built-in database provisioning.
|
|
@@ -9,14 +11,13 @@ This guide walks through deploying a Bun application with a PostgreSQL database
|
|
|
9
11
|
|
|
10
12
|
You can either follow this guide step-by-step or simply deploy the pre-configured template with one click:
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
<a
|
|
15
|
+
href="https://railway.com/deploy/bun-react-postgres?referralCode=Bun&utm_medium=integration&utm_source=template&utm_campaign=bun"
|
|
16
|
+
target="_blank"
|
|
17
|
+
>
|
|
15
18
|
<img src="https://railway.com/button.svg" alt="Deploy on Railway" />
|
|
16
19
|
</a>
|
|
17
20
|
|
|
18
|
-
{% /raw %}
|
|
19
|
-
|
|
20
21
|
---
|
|
21
22
|
|
|
22
23
|
**Prerequisites**:
|
|
@@ -30,88 +31,78 @@ You can either follow this guide step-by-step or simply deploy the pre-configure
|
|
|
30
31
|
|
|
31
32
|
## Method 1: Deploy via CLI
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
#### Step 1
|
|
36
|
-
|
|
34
|
+
<Steps>
|
|
35
|
+
<Step title="Step 1">
|
|
37
36
|
Ensure sure you have the Railway CLI installed.
|
|
38
37
|
|
|
39
|
-
```bash
|
|
38
|
+
```bash terminal icon="terminal"
|
|
40
39
|
bun install -g @railway/cli
|
|
41
40
|
```
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
#### Step 2
|
|
46
|
-
|
|
42
|
+
</Step>
|
|
43
|
+
<Step title="Step 2">
|
|
47
44
|
Log into your Railway account.
|
|
48
45
|
|
|
49
|
-
```bash
|
|
46
|
+
```bash terminal icon="terminal"
|
|
50
47
|
railway login
|
|
51
48
|
```
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
#### Step 3
|
|
56
|
-
|
|
50
|
+
</Step>
|
|
51
|
+
<Step title="Step 3">
|
|
57
52
|
After successfully authenticating, initialize a new project.
|
|
58
53
|
|
|
59
|
-
```bash
|
|
60
|
-
|
|
61
|
-
bun-react-postgres$ railway init
|
|
54
|
+
```bash terminal icon="terminal"
|
|
55
|
+
railway init
|
|
62
56
|
```
|
|
63
57
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
#### Step 4
|
|
67
|
-
|
|
58
|
+
</Step>
|
|
59
|
+
<Step title="Step 4">
|
|
68
60
|
After initializing the project, add a new database and service.
|
|
69
61
|
|
|
70
|
-
>
|
|
62
|
+
<Note>Step 4 is only necessary if your application uses a database. If you don't need PostgreSQL, skip to Step 5.</Note>
|
|
71
63
|
|
|
72
|
-
```bash
|
|
64
|
+
```bash terminal icon="terminal"
|
|
73
65
|
# Add PostgreSQL database. Make sure to add this first!
|
|
74
|
-
|
|
66
|
+
railway add --database postgres
|
|
75
67
|
|
|
76
68
|
# Add your application service.
|
|
77
|
-
|
|
69
|
+
railway add --service bun-react-db --variables DATABASE_URL=\${{Postgres.DATABASE_URL}}
|
|
78
70
|
```
|
|
79
71
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
#### Step 5
|
|
83
|
-
|
|
72
|
+
</Step>
|
|
73
|
+
<Step title="Step 5">
|
|
84
74
|
After the services have been created and connected, deploy the application to Railway. By default, services are only accessible within Railway's private network. To make your app publicly accessible, you need to generate a public domain.
|
|
85
75
|
|
|
86
|
-
```bash
|
|
76
|
+
```bash terminal icon="terminal"
|
|
87
77
|
# Deploy your application
|
|
88
|
-
|
|
78
|
+
railway up
|
|
89
79
|
|
|
90
80
|
# Generate public domain
|
|
91
|
-
|
|
81
|
+
railway domain
|
|
92
82
|
```
|
|
93
83
|
|
|
94
|
-
|
|
84
|
+
</Step>
|
|
85
|
+
</Steps>
|
|
95
86
|
|
|
96
|
-
|
|
87
|
+
Your app is now live! Railway auto-deploys on every GitHub push.
|
|
97
88
|
|
|
98
89
|
---
|
|
99
90
|
|
|
100
|
-
|
|
91
|
+
## Method 2: Deploy via Dashboard
|
|
101
92
|
|
|
93
|
+
<Steps>
|
|
94
|
+
<Step title="Step 1">
|
|
102
95
|
Create a new project
|
|
103
96
|
|
|
104
97
|
1. Go to [Railway Dashboard](http://railway.com/dashboard?utm_medium=integration&utm_source=docs&utm_campaign=bun)
|
|
105
98
|
2. Click **"+ New"** → **"GitHub repo"**
|
|
106
99
|
3. Choose your repository
|
|
107
100
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
#### Step 2
|
|
111
|
-
|
|
101
|
+
</Step>
|
|
102
|
+
<Step title="Step 2">
|
|
112
103
|
Add a PostgreSQL database, and connect this database to the service
|
|
113
104
|
|
|
114
|
-
>
|
|
105
|
+
<Note>Step 2 is only necessary if your application uses a database. If you don't need PostgreSQL, skip to Step 3.</Note>
|
|
115
106
|
|
|
116
107
|
1. Click **"+ New"** → **"Database"** → **"Add PostgreSQL"**
|
|
117
108
|
2. After the database has been created, select your service (not the database)
|
|
@@ -119,17 +110,16 @@ Add a PostgreSQL database, and connect this database to the service
|
|
|
119
110
|
4. Click **"+ New Variable"** → **"Add Reference"**
|
|
120
111
|
5. Select `DATABASE_URL` from postgres
|
|
121
112
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
#### Step 3
|
|
125
|
-
|
|
113
|
+
</Step>
|
|
114
|
+
<Step title="Step 3">
|
|
126
115
|
Generate a public domain
|
|
127
116
|
|
|
128
117
|
1. Select your service
|
|
129
118
|
2. Go to **"Settings"** tab
|
|
130
119
|
3. Under **"Networking"**, click **"Generate Domain"**
|
|
131
120
|
|
|
132
|
-
|
|
121
|
+
</Step>
|
|
122
|
+
</Steps>
|
|
133
123
|
|
|
134
124
|
Your app is now live! Railway auto-deploys on every GitHub push.
|
|
135
125
|
|
|
@@ -137,15 +127,13 @@ Your app is now live! Railway auto-deploys on every GitHub push.
|
|
|
137
127
|
|
|
138
128
|
## Configuration (Optional)
|
|
139
129
|
|
|
140
|
-
---
|
|
141
|
-
|
|
142
130
|
By default, Railway uses [Nixpacks](https://docs.railway.com/guides/build-configuration#nixpacks-options) to automatically detect and build your Bun application with zero configuration.
|
|
143
131
|
|
|
144
132
|
However, using the [Railpack](https://docs.railway.com/guides/build-configuration#railpack) application builder provides better Bun support, and will always support the latest version of Bun. The pre-configured templates use Railpack by default.
|
|
145
133
|
|
|
146
134
|
To enable Railpack in a custom project, add the following to your `railway.json`:
|
|
147
135
|
|
|
148
|
-
```json
|
|
136
|
+
```json railway.json icon="file-json"
|
|
149
137
|
{
|
|
150
138
|
"$schema": "https://railway.com/railway.schema.json",
|
|
151
139
|
"build": {
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Deploy a Bun application on Render
|
|
3
|
+
sidebarTitle: Deploy on Render
|
|
4
|
+
mode: center
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[Render](https://render.com/) is a cloud platform that lets you flexibly build, deploy, and scale your apps.
|
|
8
|
+
|
|
9
|
+
It offers features like auto deploys from GitHub, a global CDN, private networks, automatic HTTPS setup, and managed PostgreSQL and Redis.
|
|
10
|
+
|
|
11
|
+
Render supports Bun natively. You can deploy Bun apps as web services, background workers, cron jobs, and more.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
As an example, let's deploy a simple Express HTTP server to Render.
|
|
16
|
+
|
|
17
|
+
<Steps>
|
|
18
|
+
<Step title="Step 1">
|
|
19
|
+
Create a new GitHub repo named `myapp`. Git clone it locally.
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
git clone git@github.com:my-github-username/myapp.git
|
|
23
|
+
cd myapp
|
|
24
|
+
```
|
|
25
|
+
</Step>
|
|
26
|
+
<Step title="Step 2">
|
|
27
|
+
Add the Express library.
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
bun add express
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
</Step>
|
|
34
|
+
|
|
35
|
+
<Step title="Step 3">
|
|
36
|
+
Define a simple server with Express:
|
|
37
|
+
|
|
38
|
+
```ts app.ts icon="/icons/typescript.svg"
|
|
39
|
+
import express from "express";
|
|
40
|
+
|
|
41
|
+
const app = express();
|
|
42
|
+
const port = process.env.PORT || 3001;
|
|
43
|
+
|
|
44
|
+
app.get("/", (req, res) => {
|
|
45
|
+
res.send("Hello World!");
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
app.listen(port, () => {
|
|
49
|
+
console.log(`Listening on port ${port}...`);
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
</Step>
|
|
53
|
+
<Step title="Step 4">
|
|
54
|
+
|
|
55
|
+
Commit your changes and push to GitHub.
|
|
56
|
+
|
|
57
|
+
```sh terminal icon="terminal"
|
|
58
|
+
git add app.ts bun.lock package.json
|
|
59
|
+
git commit -m "Create simple Express app"
|
|
60
|
+
git push origin main
|
|
61
|
+
```
|
|
62
|
+
</Step>
|
|
63
|
+
<Step title="Step 5">
|
|
64
|
+
In your [Render Dashboard](https://dashboard.render.com/), click `New` > `Web Service` and connect your `myapp` repo.
|
|
65
|
+
|
|
66
|
+
</Step>
|
|
67
|
+
<Step title="Step 6">
|
|
68
|
+
In the Render UI, provide the following values during web service creation:
|
|
69
|
+
|
|
70
|
+
| | |
|
|
71
|
+
| ----------------- | ------------- |
|
|
72
|
+
| **Runtime** | `Node` |
|
|
73
|
+
| **Build Command** | `bun install` |
|
|
74
|
+
| **Start Command** | `bun app.ts` |
|
|
75
|
+
|
|
76
|
+
</Step>
|
|
77
|
+
|
|
78
|
+
</Steps>
|
|
79
|
+
|
|
80
|
+
That's it! Your web service will be live at its assigned `onrender.com` URL as soon as the build finishes.
|
|
81
|
+
|
|
82
|
+
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.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Deploy a Bun application on Vercel
|
|
3
|
+
sidebarTitle: Deploy on Vercel
|
|
4
|
+
mode: center
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
import { ProductCard } from "/snippets/product-card.mdx";
|
|
8
|
+
|
|
9
|
+
[Vercel](https://vercel.com/) is a cloud platform that lets you build, deploy, and scale your apps.
|
|
10
|
+
|
|
11
|
+
<Warning>
|
|
12
|
+
The Bun runtime is in Beta; certain features (e.g., automatic source maps, byte-code caching, metrics on
|
|
13
|
+
`node:http/https`) are not yet supported.
|
|
14
|
+
</Warning>
|
|
15
|
+
|
|
16
|
+
<Note>
|
|
17
|
+
`Bun.serve` is currently not supported on Vercel Functions. Use Bun with frameworks supported by Vercel, like Next.js,
|
|
18
|
+
Express, Hono, or Nitro.
|
|
19
|
+
</Note>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
<Steps>
|
|
24
|
+
<Step title="Configure Bun in vercel.json">
|
|
25
|
+
To enable the Bun runtime for your Functions, add a `bunVersion` field in your `vercel.json` file:
|
|
26
|
+
|
|
27
|
+
```json vercel.json icon="file-json"
|
|
28
|
+
{
|
|
29
|
+
"bunVersion": "1.x" // [!code ++]
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Vercel automatically detects this configuration and runs your application on Bun. The value has to be `"1.x"`, Vercel handles the minor version internally.
|
|
34
|
+
|
|
35
|
+
For best results, match your local Bun version with the version used by Vercel. **Currently, Bun version `1.2.23` is supported**.
|
|
36
|
+
</Step>
|
|
37
|
+
|
|
38
|
+
<Step title="Next.js configuration">
|
|
39
|
+
If you’re deploying a **Next.js** project (including ISR), update your `package.json` scripts to use the Bun runtime:
|
|
40
|
+
|
|
41
|
+
```json package.json icon="file-json"
|
|
42
|
+
{
|
|
43
|
+
"scripts": {
|
|
44
|
+
"dev": "bun --bun next dev", // [!code ++]
|
|
45
|
+
"build": "bun --bun next build" // [!code ++]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
<Note>
|
|
51
|
+
The `--bun` flag runs the Next.js CLI under Bun. Bundling (via Turbopack or Webpack) remains unchanged, but all commands execute within the Bun runtime.
|
|
52
|
+
</Note>
|
|
53
|
+
|
|
54
|
+
This ensures both local development and builds use Bun.
|
|
55
|
+
</Step>
|
|
56
|
+
|
|
57
|
+
<Step title="Deploy your app">
|
|
58
|
+
Connect your repository to Vercel, or deploy from the CLI:
|
|
59
|
+
|
|
60
|
+
```bash terminal icon="terminal"
|
|
61
|
+
# Using bunx (no global install)
|
|
62
|
+
bunx vercel login
|
|
63
|
+
bunx vercel deploy
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Or install the Vercel CLI globally:
|
|
67
|
+
|
|
68
|
+
```bash terminal icon="terminal"
|
|
69
|
+
bun i -g vercel
|
|
70
|
+
vercel login
|
|
71
|
+
vercel deploy
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
[Learn more in the Vercel Deploy CLI documentation →](https://vercel.com/docs/cli/deploy)
|
|
75
|
+
</Step>
|
|
76
|
+
|
|
77
|
+
<Step title="Verify the runtime">
|
|
78
|
+
To confirm your deployment uses Bun, log the Bun version:
|
|
79
|
+
|
|
80
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
81
|
+
console.log("runtime", process.versions.bun);
|
|
82
|
+
```
|
|
83
|
+
```txt
|
|
84
|
+
runtime 1.2.23
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
[See the Vercel Bun Runtime documentation for feature support →](https://vercel.com/docs/functions/runtimes/bun#feature-support)
|
|
88
|
+
</Step>
|
|
89
|
+
|
|
90
|
+
</Steps>
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
- [Fluid compute](https://vercel.com/docs/fluid-compute): Both Bun and Node.js runtimes run on Fluid compute and support the same core Vercel Functions features.
|
|
95
|
+
- [Middleware](https://vercel.com/docs/routing-middleware): To run Routing Middleware with Bun, set the runtime to `nodejs`:
|
|
96
|
+
|
|
97
|
+
```ts middleware.ts icon="/icons/typescript.svg"
|
|
98
|
+
export const config = { runtime: "nodejs" }; // [!code ++]
|
|
99
|
+
```
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Build an app with Astro and Bun
|
|
3
|
+
sidebarTitle: "Astro with Bun"
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Initialize a fresh Astro app with `bun create astro`. The `create-astro` package detects when you are using `bunx` and will automatically install dependencies using `bun`.
|
|
6
8
|
|
|
7
|
-
```sh
|
|
8
|
-
|
|
9
|
+
```sh terminal icon="terminal"
|
|
10
|
+
bun create astro
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```txt
|
|
9
14
|
╭─────╮ Houston:
|
|
10
15
|
│ ◠ ◡ ◠ We're glad to have you on board.
|
|
11
16
|
╰─────╯
|
|
@@ -53,8 +58,11 @@ Start the dev server with `bunx`.
|
|
|
53
58
|
|
|
54
59
|
By default, Bun will run the dev server with Node.js. To use the Bun runtime instead, use the `--bun` flag.
|
|
55
60
|
|
|
56
|
-
```sh
|
|
57
|
-
|
|
61
|
+
```sh terminal icon="terminal"
|
|
62
|
+
bunx --bun astro dev
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```txt
|
|
58
66
|
🚀 astro v3.1.4 started in 200ms
|
|
59
67
|
|
|
60
68
|
┃ Local http://localhost:4321/
|
|
@@ -65,7 +73,9 @@ $ bunx --bun astro dev
|
|
|
65
73
|
|
|
66
74
|
Open [http://localhost:4321](http://localhost:4321) with your browser to see the result. Astro will hot-reload your app as you edit your source files.
|
|
67
75
|
|
|
68
|
-
|
|
76
|
+
<Frame>
|
|
77
|
+
<img src="https://i.imgur.com/Dswiu6w.png" caption="An Astro v3 starter app running on Bun" />
|
|
78
|
+
</Frame>
|
|
69
79
|
|
|
70
80
|
---
|
|
71
81
|
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Create a Discord bot
|
|
3
|
+
sidebarTitle: "Discord.js with Bun"
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Discord.js works out of the box with Bun. Let's write a simple bot. First create a directory and initialize it with `bun init`.
|
|
6
8
|
|
|
7
|
-
```sh
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
```sh terminal icon="terminal"
|
|
10
|
+
mkdir my-bot
|
|
11
|
+
cd my-bot
|
|
12
|
+
bun init
|
|
11
13
|
```
|
|
12
14
|
|
|
13
15
|
---
|
|
14
16
|
|
|
15
17
|
Now install Discord.js.
|
|
16
18
|
|
|
17
|
-
```sh
|
|
18
|
-
|
|
19
|
+
```sh terminal icon="terminal"
|
|
20
|
+
bun add discord.js
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
---
|
|
@@ -26,11 +28,9 @@ Before we go further, we need to go to the [Discord developer portal](https://di
|
|
|
26
28
|
|
|
27
29
|
Once complete, you'll be presented with your bot's _private key_. Let's add this to a file called `.env.local`. Bun automatically reads this file and loads it into `process.env`.
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
This is an example token that has already been invalidated.
|
|
31
|
-
{% /callout %}
|
|
31
|
+
<Note>This is an example token that has already been invalidated.</Note>
|
|
32
32
|
|
|
33
|
-
```txt
|
|
33
|
+
```txt .env.local icon="settings"
|
|
34
34
|
DISCORD_TOKEN=NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -38,7 +38,7 @@ DISCORD_TOKEN=NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I
|
|
|
38
38
|
|
|
39
39
|
Be sure to add `.env.local` to your `.gitignore`! It is dangerous to check your bot's private key into version control.
|
|
40
40
|
|
|
41
|
-
```txt
|
|
41
|
+
```txt .gitignore icon="file-code"
|
|
42
42
|
node_modules
|
|
43
43
|
.env.local
|
|
44
44
|
```
|
|
@@ -47,15 +47,15 @@ node_modules
|
|
|
47
47
|
|
|
48
48
|
Now let's actually write our bot in a new file called `bot.ts`.
|
|
49
49
|
|
|
50
|
-
```ts
|
|
50
|
+
```ts bot.ts icon="/icons/typescript.svg"
|
|
51
51
|
// import discord.js
|
|
52
|
-
import {Client, Events, GatewayIntentBits} from
|
|
52
|
+
import { Client, Events, GatewayIntentBits } from "discord.js";
|
|
53
53
|
|
|
54
54
|
// create a new Client instance
|
|
55
|
-
const client = new Client({intents: [GatewayIntentBits.Guilds]});
|
|
55
|
+
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
|
|
56
56
|
|
|
57
57
|
// listen for the client to be ready
|
|
58
|
-
client.once(Events.ClientReady,
|
|
58
|
+
client.once(Events.ClientReady, c => {
|
|
59
59
|
console.log(`Ready! Logged in as ${c.user.tag}`);
|
|
60
60
|
});
|
|
61
61
|
|
|
@@ -67,8 +67,11 @@ client.login(process.env.DISCORD_TOKEN);
|
|
|
67
67
|
|
|
68
68
|
Now we can run our bot with `bun run`. It may take a several seconds for the client to initialize the first time you run the file.
|
|
69
69
|
|
|
70
|
-
```sh
|
|
71
|
-
|
|
70
|
+
```sh terminal icon="terminal"
|
|
71
|
+
bun run bot.ts
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```txt
|
|
72
75
|
Ready! Logged in as my-bot#1234
|
|
73
76
|
```
|
|
74
77
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Containerize a Bun application with Docker
|
|
3
|
+
sidebarTitle: Docker with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
This guide assumes you already have [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed.
|
|
7
|
-
|
|
7
|
+
<Note>
|
|
8
|
+
This guide assumes you already have [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed.
|
|
9
|
+
</Note>
|
|
8
10
|
|
|
9
11
|
[Docker](https://www.docker.com) is a platform for packaging and running an application as a lightweight, portable _container_ that encapsulates all the necessary dependencies.
|
|
10
12
|
|
|
@@ -12,7 +14,7 @@ This guide assumes you already have [Docker Desktop](https://www.docker.com/prod
|
|
|
12
14
|
|
|
13
15
|
To _containerize_ our application, we define a `Dockerfile`. This file contains a list of instructions to initialize the container, copy our local project files into it, install dependencies, and starts the application.
|
|
14
16
|
|
|
15
|
-
```docker
|
|
17
|
+
```docker Dockerfile icon="docker"
|
|
16
18
|
# use the official Bun image
|
|
17
19
|
# see all versions at https://hub.docker.com/r/oven/bun/tags
|
|
18
20
|
FROM oven/bun:1 AS base
|
|
@@ -57,7 +59,7 @@ ENTRYPOINT [ "bun", "run", "index.ts" ]
|
|
|
57
59
|
|
|
58
60
|
Now that you have your docker image, let's look at `.dockerignore` which has the same syntax as `.gitignore`, here you need to specify the files/directories that must not go in any stage of the docker build. An example for a ignore file is
|
|
59
61
|
|
|
60
|
-
```txt
|
|
62
|
+
```txt .dockerignore icon="docker"
|
|
61
63
|
node_modules
|
|
62
64
|
Dockerfile*
|
|
63
65
|
docker-compose*
|
|
@@ -81,8 +83,11 @@ We'll now use `docker build` to convert this `Dockerfile` into a _Docker image_,
|
|
|
81
83
|
|
|
82
84
|
The `-t` flag lets us specify a name for the image, and `--pull` tells Docker to automatically download the latest version of the base image (`oven/bun`). The initial build will take longer, as Docker will download all the base images and dependencies.
|
|
83
85
|
|
|
84
|
-
```bash
|
|
85
|
-
|
|
86
|
+
```bash terminal icon="terminal"
|
|
87
|
+
docker build --pull -t bun-hello-world .
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```txt
|
|
86
91
|
[+] Building 0.9s (21/21) FINISHED
|
|
87
92
|
=> [internal] load build definition from Dockerfile 0.0s
|
|
88
93
|
=> => transferring dockerfile: 37B 0.0s
|
|
@@ -108,8 +113,11 @@ We'll use `docker run` to start a new container using the `bun-hello-world` imag
|
|
|
108
113
|
|
|
109
114
|
The `run` command prints a string representing the _container ID_.
|
|
110
115
|
|
|
111
|
-
```sh
|
|
112
|
-
|
|
116
|
+
```sh terminal icon="terminal"
|
|
117
|
+
docker run -d -p 3000:3000 bun-hello-world
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```txt
|
|
113
121
|
7f03e212a15ede8644379bce11a13589f563d3909a9640446c5bbefce993678d
|
|
114
122
|
```
|
|
115
123
|
|
|
@@ -121,16 +129,19 @@ The container is now running in the background. Visit [localhost:3000](http://lo
|
|
|
121
129
|
|
|
122
130
|
To stop the container, we'll use `docker stop <container-id>`.
|
|
123
131
|
|
|
124
|
-
```sh
|
|
125
|
-
|
|
132
|
+
```sh terminal icon="terminal"
|
|
133
|
+
docker stop 7f03e212a15ede8644379bce11a13589f563d3909a9640446c5bbefce993678d
|
|
126
134
|
```
|
|
127
135
|
|
|
128
136
|
---
|
|
129
137
|
|
|
130
138
|
If you can't find the container ID, you can use `docker ps` to list all running containers.
|
|
131
139
|
|
|
132
|
-
```sh
|
|
133
|
-
|
|
140
|
+
```sh terminal icon="terminal"
|
|
141
|
+
docker ps
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
```txt
|
|
134
145
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
|
135
146
|
7f03e212a15e bun-hello-world "bun run index.ts" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp flamboyant_cerf
|
|
136
147
|
```
|