bun-types 1.3.2-canary.20251105T140650 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun.d.ts +102 -6
- package/docs/README.md +28 -0
- package/docs/bundler/bytecode.mdx +465 -0
- package/docs/bundler/{css.md → css.mdx} +97 -101
- package/docs/bundler/esbuild.mdx +253 -0
- package/docs/bundler/{executables.md → executables.mdx} +130 -221
- package/docs/bundler/fullstack.mdx +1064 -0
- package/docs/bundler/{hmr.md → hot-reloading.mdx} +74 -79
- package/docs/bundler/{html.md → html-static.mdx} +148 -111
- package/docs/bundler/index.mdx +1499 -0
- package/docs/bundler/loaders.mdx +356 -0
- package/docs/bundler/{macros.md → macros.mdx} +83 -84
- package/docs/bundler/minifier.mdx +1306 -0
- package/docs/bundler/plugins.mdx +411 -0
- package/docs/feedback.mdx +85 -0
- package/docs/guides/binary/{arraybuffer-to-array.md → arraybuffer-to-array.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-blob.md → arraybuffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-buffer.md → arraybuffer-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-string.md → arraybuffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-typedarray.md → arraybuffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{blob-to-arraybuffer.md → blob-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{blob-to-dataview.md → blob-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{blob-to-stream.md → blob-to-stream.mdx} +3 -1
- package/docs/guides/binary/{blob-to-string.md → blob-to-string.mdx} +3 -1
- package/docs/guides/binary/{blob-to-typedarray.md → blob-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-arraybuffer.md → buffer-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-blob.md → buffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-readablestream.md → buffer-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-string.md → buffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-typedarray.md → buffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{dataview-to-string.md → dataview-to-string.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-arraybuffer.md → typedarray-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-blob.md → typedarray-to-blob.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-buffer.md → typedarray-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-dataview.md → typedarray-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-readablestream.md → typedarray-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-string.md → typedarray-to-string.mdx} +3 -1
- package/docs/guides/deployment/aws-lambda.mdx +204 -0
- package/docs/guides/deployment/digital-ocean.mdx +161 -0
- package/docs/guides/deployment/google-cloud-run.mdx +197 -0
- package/docs/guides/deployment/{railway.md → railway.mdx} +42 -54
- package/docs/guides/deployment/render.mdx +82 -0
- package/docs/guides/deployment/vercel.mdx +99 -0
- package/docs/guides/ecosystem/{astro.md → astro.mdx} +16 -6
- package/docs/guides/ecosystem/{discordjs.md → discordjs.mdx} +21 -18
- package/docs/guides/ecosystem/{docker.md → docker.mdx} +25 -14
- package/docs/guides/ecosystem/{drizzle.md → drizzle.mdx} +32 -22
- package/docs/guides/ecosystem/{edgedb.md → edgedb.mdx} +63 -34
- package/docs/guides/ecosystem/{elysia.md → elysia.mdx} +11 -11
- package/docs/guides/ecosystem/{express.md → express.mdx} +12 -9
- package/docs/guides/ecosystem/{hono.md → hono.mdx} +16 -8
- package/docs/guides/ecosystem/{mongoose.md → mongoose.mdx} +26 -21
- package/docs/guides/ecosystem/{neon-drizzle.md → neon-drizzle.mdx} +49 -35
- package/docs/guides/ecosystem/{neon-serverless-postgres.md → neon-serverless-postgres.mdx} +16 -11
- package/docs/guides/ecosystem/{nextjs.md → nextjs.mdx} +18 -10
- package/docs/guides/ecosystem/{nuxt.md → nuxt.mdx} +45 -11
- package/docs/guides/ecosystem/{pm2.md → pm2.mdx} +7 -9
- package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
- package/docs/guides/ecosystem/prisma.mdx +164 -0
- package/docs/guides/ecosystem/{qwik.md → qwik.mdx} +18 -11
- package/docs/guides/ecosystem/{react.md → react.mdx} +9 -7
- package/docs/guides/ecosystem/{remix.md → remix.mdx} +45 -26
- package/docs/guides/ecosystem/{sentry.md → sentry.mdx} +7 -5
- package/docs/guides/ecosystem/{solidstart.md → solidstart.mdx} +21 -13
- package/docs/guides/ecosystem/{ssr-react.md → ssr-react.mdx} +9 -11
- package/docs/guides/ecosystem/{stric.md → stric.mdx} +16 -17
- package/docs/guides/ecosystem/{sveltekit.md → sveltekit.mdx} +42 -29
- package/docs/guides/ecosystem/{systemd.md → systemd.mdx} +27 -26
- package/docs/guides/ecosystem/upstash.mdx +87 -0
- package/docs/guides/ecosystem/{vite.md → vite.mdx} +20 -14
- package/docs/guides/html-rewriter/{extract-links.md → extract-links.mdx} +11 -7
- package/docs/guides/html-rewriter/{extract-social-meta.md → extract-social-meta.mdx} +6 -2
- package/docs/guides/http/{cluster.md → cluster.mdx} +10 -7
- package/docs/guides/http/{fetch-unix.md → fetch-unix.mdx} +5 -3
- package/docs/guides/http/{fetch.md → fetch.mdx} +5 -3
- package/docs/guides/http/{file-uploads.md → file-uploads.mdx} +18 -15
- package/docs/guides/http/{hot.md → hot.mdx} +9 -7
- package/docs/guides/http/{proxy.md → proxy.mdx} +7 -5
- package/docs/guides/http/{server.md → server.mdx} +4 -2
- package/docs/guides/http/{simple.md → simple.mdx} +4 -2
- package/docs/guides/http/{stream-file.md → stream-file.mdx} +6 -4
- package/docs/guides/http/{stream-iterator.md → stream-iterator.mdx} +5 -3
- package/docs/guides/http/{stream-node-streams-in-bun.md → stream-node-streams-in-bun.mdx} +4 -2
- package/docs/guides/http/{tls.md → tls.mdx} +5 -3
- package/docs/guides/index.mdx +10 -0
- package/docs/guides/install/{add-dev.md → add-dev.mdx} +8 -6
- package/docs/guides/install/add-git.mdx +38 -0
- package/docs/guides/install/{add-optional.md → add-optional.mdx} +7 -5
- package/docs/guides/install/{add-peer.md → add-peer.mdx} +13 -11
- package/docs/guides/install/{add-tarball.md → add-tarball.mdx} +7 -5
- package/docs/guides/install/{add.md → add.mdx} +12 -10
- package/docs/guides/install/{azure-artifacts.md → azure-artifacts.mdx} +15 -12
- package/docs/guides/{runtime/cicd.md → install/cicd.mdx} +13 -13
- package/docs/guides/install/{custom-registry.md → custom-registry.mdx} +6 -4
- package/docs/guides/install/{from-npm-install-to-bun-install.md → from-npm-install-to-bun-install.mdx} +50 -34
- package/docs/guides/install/{git-diff-bun-lockfile.md → git-diff-bun-lockfile.mdx} +14 -11
- package/docs/guides/install/{jfrog-artifactory.md → jfrog-artifactory.mdx} +4 -4
- package/docs/guides/install/{npm-alias.md → npm-alias.mdx} +6 -4
- package/docs/guides/install/{registry-scope.md → registry-scope.mdx} +6 -4
- package/docs/guides/install/{trusted.md → trusted.mdx} +22 -18
- package/docs/guides/install/{workspaces.md → workspaces.mdx} +13 -13
- package/docs/guides/install/{yarnlock.md → yarnlock.mdx} +15 -9
- package/docs/guides/process/{argv.md → argv.mdx} +17 -9
- package/docs/guides/process/{ctrl-c.md → ctrl-c.mdx} +4 -2
- package/docs/guides/process/{ipc.md → ipc.mdx} +13 -10
- package/docs/guides/process/{nanoseconds.md → nanoseconds.mdx} +3 -1
- package/docs/guides/process/{os-signals.md → os-signals.mdx} +3 -1
- package/docs/guides/process/{spawn-stderr.md → spawn-stderr.mdx} +4 -1
- package/docs/guides/process/{spawn-stdout.md → spawn-stdout.mdx} +3 -1
- package/docs/guides/process/{spawn.md → spawn.mdx} +3 -1
- package/docs/guides/process/{stdin.md → stdin.mdx} +15 -7
- package/docs/guides/read-file/{arraybuffer.md → arraybuffer.mdx} +5 -3
- package/docs/guides/read-file/{buffer.md → buffer.mdx} +4 -2
- package/docs/guides/read-file/{exists.md → exists.mdx} +4 -2
- package/docs/guides/read-file/{json.md → json.mdx} +4 -2
- package/docs/guides/read-file/{mime.md → mime.mdx} +3 -1
- package/docs/guides/read-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/read-file/{string.md → string.mdx} +3 -1
- package/docs/guides/read-file/{uint8array.md → uint8array.mdx} +3 -1
- package/docs/guides/read-file/{watch.md → watch.mdx} +6 -8
- package/docs/guides/runtime/{build-time-constants.md → build-time-constants.mdx} +24 -22
- package/docs/guides/{install/cicd.md → runtime/cicd.mdx} +11 -7
- package/docs/guides/runtime/{codesign-macos-executable.md → codesign-macos-executable.mdx} +14 -9
- package/docs/guides/runtime/{define-constant.md → define-constant.mdx} +20 -16
- package/docs/guides/runtime/{delete-directory.md → delete-directory.mdx} +5 -3
- package/docs/guides/runtime/{delete-file.md → delete-file.mdx} +4 -2
- package/docs/guides/runtime/{heap-snapshot.md → heap-snapshot.mdx} +5 -3
- package/docs/guides/runtime/{import-html.md → import-html.mdx} +4 -2
- package/docs/guides/runtime/{import-json.md → import-json.mdx} +6 -4
- package/docs/guides/runtime/{import-toml.md → import-toml.mdx} +5 -3
- package/docs/guides/runtime/{import-yaml.md → import-yaml.mdx} +9 -7
- package/docs/guides/runtime/{read-env.md → read-env.mdx} +10 -5
- package/docs/guides/runtime/{set-env.md → set-env.mdx} +14 -10
- package/docs/guides/runtime/{shell.md → shell.mdx} +6 -4
- package/docs/guides/runtime/{timezone.md → timezone.mdx} +10 -7
- package/docs/guides/runtime/{tsconfig-paths.md → tsconfig-paths.mdx} +5 -3
- package/docs/guides/runtime/{typescript.md → typescript.mdx} +8 -6
- package/docs/guides/runtime/{vscode-debugger.md → vscode-debugger.mdx} +12 -11
- package/docs/guides/runtime/{web-debugger.md → web-debugger.mdx} +39 -18
- package/docs/guides/streams/{node-readable-to-arraybuffer.md → node-readable-to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-blob.md → node-readable-to-blob.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-json.md → node-readable-to-json.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-string.md → node-readable-to-string.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-uint8array.md → node-readable-to-uint8array.mdx} +3 -1
- package/docs/guides/streams/{to-array.md → to-array.mdx} +3 -1
- package/docs/guides/streams/{to-arraybuffer.md → to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{to-blob.md → to-blob.mdx} +3 -1
- package/docs/guides/streams/{to-buffer.md → to-buffer.mdx} +3 -1
- package/docs/guides/streams/{to-json.md → to-json.mdx} +4 -2
- package/docs/guides/streams/{to-string.md → to-string.mdx} +3 -1
- package/docs/guides/streams/{to-typedarray.md → to-typedarray.mdx} +3 -1
- package/docs/guides/test/{bail.md → bail.mdx} +7 -5
- package/docs/guides/test/{coverage-threshold.md → coverage-threshold.mdx} +14 -7
- package/docs/guides/test/{coverage.md → coverage.mdx} +9 -4
- package/docs/guides/test/{happy-dom.md → happy-dom.mdx} +13 -8
- package/docs/guides/test/{migrate-from-jest.md → migrate-from-jest.mdx} +19 -37
- package/docs/guides/test/{mock-clock.md → mock-clock.mdx} +3 -1
- package/docs/guides/test/{mock-functions.md → mock-functions.mdx} +7 -5
- package/docs/guides/test/{rerun-each.md → rerun-each.mdx} +5 -3
- package/docs/guides/test/{run-tests.md → run-tests.mdx} +16 -11
- package/docs/guides/test/{skip-tests.md → skip-tests.mdx} +8 -4
- package/docs/guides/test/{snapshot.md → snapshot.mdx} +20 -13
- package/docs/guides/test/spy-on.mdx +49 -0
- package/docs/guides/test/{svelte-test.md → svelte-test.mdx} +16 -23
- package/docs/guides/test/{testing-library.md → testing-library.mdx} +18 -17
- package/docs/guides/test/{timeout.md → timeout.mdx} +5 -3
- package/docs/guides/test/{todo-tests.md → todo-tests.mdx} +13 -6
- package/docs/guides/test/{update-snapshots.md → update-snapshots.mdx} +9 -6
- package/docs/guides/test/{watch-mode.md → watch-mode.mdx} +9 -4
- package/docs/guides/util/{base64.md → base64.mdx} +3 -1
- package/docs/guides/util/{deep-equals.md → deep-equals.mdx} +5 -3
- package/docs/guides/util/{deflate.md → deflate.mdx} +3 -1
- package/docs/guides/util/{detect-bun.md → detect-bun.mdx} +3 -1
- package/docs/guides/util/{entrypoint.md → entrypoint.mdx} +4 -2
- package/docs/guides/util/{escape-html.md → escape-html.mdx} +3 -1
- package/docs/guides/util/{file-url-to-path.md → file-url-to-path.mdx} +3 -1
- package/docs/guides/util/{gzip.md → gzip.mdx} +3 -1
- package/docs/guides/util/{hash-a-password.md → hash-a-password.mdx} +3 -1
- package/docs/guides/util/{import-meta-dir.md → import-meta-dir.mdx} +4 -2
- package/docs/guides/util/{import-meta-file.md → import-meta-file.mdx} +4 -2
- package/docs/guides/util/{import-meta-path.md → import-meta-path.mdx} +4 -2
- package/docs/guides/util/{javascript-uuid.md → javascript-uuid.mdx} +3 -1
- package/docs/guides/util/{main.md → main.mdx} +19 -8
- package/docs/guides/util/{path-to-file-url.md → path-to-file-url.mdx} +3 -1
- package/docs/guides/util/{sleep.md → sleep.mdx} +3 -1
- package/docs/guides/util/{version.md → version.mdx} +6 -4
- package/docs/guides/util/{which-path-to-executable-bin.md → which-path-to-executable-bin.mdx} +4 -2
- package/docs/guides/websocket/{compression.md → compression.mdx} +5 -3
- package/docs/guides/websocket/{context.md → context.mdx} +9 -12
- package/docs/guides/websocket/{pubsub.md → pubsub.mdx} +5 -6
- package/docs/guides/websocket/{simple.md → simple.mdx} +5 -3
- package/docs/guides/write-file/{append.md → append.mdx} +3 -1
- package/docs/guides/write-file/{basic.md → basic.mdx} +3 -1
- package/docs/guides/write-file/{blob.md → blob.mdx} +3 -1
- package/docs/guides/write-file/{cat.md → cat.mdx} +4 -2
- package/docs/guides/write-file/{file-cp.md → file-cp.mdx} +3 -1
- package/docs/guides/write-file/{filesink.md → filesink.mdx} +3 -1
- package/docs/guides/write-file/{response.md → response.mdx} +3 -1
- package/docs/guides/write-file/{stdout.md → stdout.mdx} +3 -1
- package/docs/guides/write-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/write-file/{unlink.md → unlink.mdx} +3 -1
- package/docs/{index.md → index.mdx} +97 -41
- package/docs/installation.mdx +365 -0
- package/docs/{cli/bunx.md → pm/bunx.mdx} +25 -31
- package/docs/{install/catalogs.md → pm/catalogs.mdx} +18 -24
- package/docs/{cli/add.md → pm/cli/add.mdx} +61 -55
- package/docs/{install/audit.md → pm/cli/audit.mdx} +11 -8
- package/docs/{cli/install.md → pm/cli/install.mdx} +208 -81
- package/docs/{cli/link.md → pm/cli/link.mdx} +27 -19
- package/docs/{cli/outdated.md → pm/cli/outdated.mdx} +119 -12
- package/docs/{install/patch.md → pm/cli/patch.mdx} +25 -15
- package/docs/{cli/pm.md → pm/cli/pm.mdx} +96 -62
- package/docs/{cli/publish.md → pm/cli/publish.mdx} +38 -35
- package/docs/pm/cli/remove.mdx +16 -0
- package/docs/{cli/update.md → pm/cli/update.mdx} +26 -15
- package/docs/{cli/why.md → pm/cli/why.mdx} +27 -10
- package/docs/{cli/filter.md → pm/filter.mdx} +26 -14
- package/docs/{install/cache.md → pm/global-cache.mdx} +25 -12
- package/docs/{install/isolated.md → pm/isolated-installs.mdx} +32 -24
- package/docs/{install/lifecycle.md → pm/lifecycle.mdx} +20 -9
- package/docs/{install/lockfile.md → pm/lockfile.mdx} +18 -12
- package/docs/{install/npmrc.md → pm/npmrc.mdx} +30 -24
- package/docs/{install/overrides.md → pm/overrides.mdx} +47 -37
- package/docs/{install/registries.md → pm/scopes-registries.mdx} +8 -3
- package/docs/{install/security-scanner-api.md → pm/security-scanner-api.mdx} +22 -8
- package/docs/{install/workspaces.md → pm/workspaces.mdx} +17 -22
- package/docs/project/{benchmarking.md → benchmarking.mdx} +26 -11
- package/docs/project/{bindgen.md → bindgen.mdx} +12 -14
- package/docs/project/{building-windows.md → building-windows.mdx} +18 -47
- package/docs/project/{contributing.md → contributing.mdx} +56 -60
- package/docs/project/feedback.mdx +20 -0
- package/docs/project/license.mdx +78 -0
- package/docs/project/roadmap.mdx +8 -0
- package/docs/quickstart.mdx +240 -0
- package/docs/runtime/{autoimport.md → auto-install.mdx} +34 -31
- package/docs/{api/binary-data.md → runtime/binary-data.mdx} +77 -269
- package/docs/runtime/bun-apis.mdx +59 -0
- package/docs/runtime/{bunfig.md → bunfig.mdx} +95 -225
- package/docs/{api/cc.md → runtime/c-compiler.mdx} +16 -9
- package/docs/{api/spawn.md → runtime/child-process.mdx} +69 -119
- package/docs/{api/color.md → runtime/color.mdx} +6 -1
- package/docs/{api/console.md → runtime/console.mdx} +17 -7
- package/docs/{api/cookie.md → runtime/cookies.mdx} +24 -19
- package/docs/runtime/{debugger.md → debugger.mdx} +61 -51
- package/docs/runtime/environment-variables.mdx +214 -0
- package/docs/{api/ffi.md → runtime/ffi.mdx} +53 -45
- package/docs/{api/file-io.md → runtime/file-io.mdx} +41 -101
- package/docs/{api/file-system-router.md → runtime/file-system-router.mdx} +8 -2
- package/docs/{bundler/loaders.md → runtime/file-types.mdx} +56 -112
- package/docs/{api/glob.md → runtime/glob.mdx} +4 -1
- package/docs/runtime/globals.mdx +72 -0
- package/docs/{api/hashing.md → runtime/hashing.mdx} +18 -22
- package/docs/{api/html-rewriter.md → runtime/html-rewriter.mdx} +36 -30
- package/docs/runtime/http/cookies.mdx +79 -0
- package/docs/runtime/http/error-handling.mdx +40 -0
- package/docs/runtime/http/metrics.mdx +36 -0
- package/docs/runtime/http/routing.mdx +289 -0
- package/docs/runtime/http/server.mdx +647 -0
- package/docs/runtime/http/tls.mdx +101 -0
- package/docs/{api/websockets.md → runtime/http/websockets.mdx} +62 -231
- package/docs/{cli/run.md → runtime/index.mdx} +70 -108
- package/docs/runtime/jsx.mdx +115 -0
- package/docs/runtime/{modules.md → module-resolution.mdx} +83 -61
- package/docs/{api/dns.md → runtime/networking/dns.mdx} +23 -22
- package/docs/{api/fetch.md → runtime/networking/fetch.mdx} +10 -5
- package/docs/{api/tcp.md → runtime/networking/tcp.mdx} +59 -41
- package/docs/{api/udp.md → runtime/networking/udp.mdx} +14 -8
- package/docs/{api/node-api.md → runtime/node-api.mdx} +5 -0
- package/docs/runtime/{nodejs-apis.md → nodejs-compat.mdx} +9 -4
- package/docs/{bundler/plugins.md → runtime/plugins.mdx} +17 -61
- package/docs/{api/redis.md → runtime/redis.mdx} +65 -80
- package/docs/{api/s3.md → runtime/s3.mdx} +79 -66
- package/docs/{api/secrets.md → runtime/secrets.mdx} +27 -10
- package/docs/{api/semver.md → runtime/semver.mdx} +9 -4
- package/docs/runtime/{shell.md → shell.mdx} +52 -20
- package/docs/{api/sql.md → runtime/sql.mdx} +129 -99
- package/docs/{api/sqlite.md → runtime/sqlite.mdx} +162 -157
- package/docs/{api/streams.md → runtime/streams.mdx} +33 -31
- package/docs/{cli/bun-create.md → runtime/templating/create.mdx} +74 -143
- package/docs/{cli/init.md → runtime/templating/init.mdx} +24 -51
- package/docs/{api/transpiler.md → runtime/transpiler.mdx} +50 -38
- package/docs/{typescript.md → runtime/typescript.mdx} +7 -2
- package/docs/{api/utils.md → runtime/utils.mdx} +81 -50
- package/docs/runtime/{hot.md → watch-mode.mdx} +53 -37
- package/docs/runtime/web-apis.mdx +29 -0
- package/docs/{api/workers.md → runtime/workers.mdx} +28 -22
- package/docs/{api/yaml.md → runtime/yaml.mdx} +33 -232
- package/docs/snippets/cli/add.mdx +166 -0
- package/docs/snippets/cli/build.mdx +196 -0
- package/docs/snippets/cli/feedback.mdx +17 -0
- package/docs/snippets/cli/init.mdx +84 -0
- package/docs/snippets/cli/install.mdx +173 -0
- package/docs/snippets/cli/link.mdx +163 -0
- package/docs/snippets/cli/outdated.mdx +140 -0
- package/docs/snippets/cli/patch.mdx +171 -0
- package/docs/snippets/cli/publish.mdx +198 -0
- package/docs/snippets/cli/remove.mdx +146 -0
- package/docs/snippets/cli/run.mdx +293 -0
- package/docs/snippets/cli/test.mdx +100 -0
- package/docs/snippets/cli/update.mdx +144 -0
- package/docs/snippets/product-card.mdx +32 -0
- package/docs/snippets/product-tiles.mdx +94 -0
- package/docs/test/code-coverage.mdx +409 -0
- package/docs/test/configuration.mdx +467 -0
- package/docs/test/{time.md → dates-times.mdx} +23 -20
- package/docs/test/{discovery.md → discovery.mdx} +15 -10
- package/docs/test/dom.mdx +226 -0
- package/docs/{cli/test.md → test/index.mdx} +77 -94
- package/docs/test/lifecycle.mdx +348 -0
- package/docs/test/mocks.mdx +637 -0
- package/docs/test/{reporters.md → reporters.mdx} +15 -15
- package/docs/test/runtime-behavior.mdx +342 -0
- package/docs/test/snapshots.mdx +434 -0
- package/docs/test/writing-tests.mdx +635 -0
- package/docs/typescript.mdx +54 -0
- package/package.json +8 -6
- package/test.d.ts +2 -2
- package/docs/api/file.md +0 -19
- package/docs/api/globals.md +0 -387
- package/docs/api/http.md +0 -1408
- package/docs/api/import-meta.md +0 -69
- package/docs/benchmarks.md +0 -120
- package/docs/bun-flavored-toml.md +0 -42
- package/docs/bundler/css_modules.md +0 -145
- package/docs/bundler/fullstack.md +0 -418
- package/docs/bundler/index.md +0 -1735
- package/docs/bundler/intro.md +0 -75
- package/docs/bundler/vs-esbuild.md +0 -1127
- package/docs/cli/bun-completions.md +0 -3
- package/docs/cli/bun-install.md +0 -349
- package/docs/cli/bun-upgrade.md +0 -39
- package/docs/cli/info.md +0 -65
- package/docs/cli/patch-commit.md +0 -11
- package/docs/cli/remove.md +0 -7
- package/docs/cli/unlink.md +0 -9
- package/docs/contributing/upgrading-webkit.md +0 -57
- package/docs/ecosystem/elysia.md +0 -24
- package/docs/ecosystem/express.md +0 -37
- package/docs/ecosystem/hono.md +0 -18
- package/docs/ecosystem/react.md +0 -65
- package/docs/ecosystem/stric.md +0 -38
- package/docs/guides/ecosystem/prisma.md +0 -141
- package/docs/guides/ecosystem/render.md +0 -79
- package/docs/guides/install/add-git.md +0 -36
- package/docs/guides/test/spy-on.md +0 -46
- package/docs/install/index.md +0 -248
- package/docs/installation.md +0 -327
- package/docs/project/asan.md +0 -124
- package/docs/project/internals/build-process-for-ci.md +0 -75
- package/docs/project/licensing.md +0 -73
- package/docs/project/roadmap.md +0 -87
- package/docs/quickstart.md +0 -157
- package/docs/runtime/bun-apis.md +0 -207
- package/docs/runtime/env.md +0 -253
- package/docs/runtime/index.md +0 -312
- package/docs/runtime/jsx.md +0 -385
- package/docs/runtime/loaders.md +0 -130
- package/docs/runtime/plugins.md +0 -561
- package/docs/runtime/typescript.md +0 -139
- package/docs/runtime/web-apis.md +0 -128
- package/docs/test/configuration.md +0 -154
- package/docs/test/coverage.md +0 -142
- package/docs/test/dom.md +0 -75
- package/docs/test/examples/concurrent-test-glob.md +0 -132
- package/docs/test/hot.md +0 -15
- package/docs/test/lifecycle.md +0 -81
- package/docs/test/mocks.md +0 -313
- package/docs/test/runtime-behavior.md +0 -95
- package/docs/test/snapshots.md +0 -68
- package/docs/test/writing.md +0 -825
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Use Drizzle ORM with Bun
|
|
3
|
+
sidebarTitle: Drizzle with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Drizzle is an ORM that supports both a SQL-like "query builder" API and an ORM-like [Queries API](https://orm.drizzle.team/docs/rqb). It supports the `bun:sqlite` built-in module.
|
|
@@ -8,17 +10,17 @@ Drizzle is an ORM that supports both a SQL-like "query builder" API and an ORM-l
|
|
|
8
10
|
|
|
9
11
|
Let's get started by creating a fresh project with `bun init` and installing Drizzle.
|
|
10
12
|
|
|
11
|
-
```sh
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
```sh terminal icon="terminal"
|
|
14
|
+
bun init -y
|
|
15
|
+
bun add drizzle-orm
|
|
16
|
+
bun add -D drizzle-kit
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
---
|
|
18
20
|
|
|
19
21
|
Then we'll connect to a SQLite database using the `bun:sqlite` module and create the Drizzle database instance.
|
|
20
22
|
|
|
21
|
-
```ts
|
|
23
|
+
```ts db.ts icon="/icons/typescript.svg"
|
|
22
24
|
import { drizzle } from "drizzle-orm/bun-sqlite";
|
|
23
25
|
import { Database } from "bun:sqlite";
|
|
24
26
|
|
|
@@ -30,7 +32,7 @@ export const db = drizzle(sqlite);
|
|
|
30
32
|
|
|
31
33
|
To see the database in action, add these lines to `index.ts`.
|
|
32
34
|
|
|
33
|
-
```ts
|
|
35
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
34
36
|
import { db } from "./db";
|
|
35
37
|
import { sql } from "drizzle-orm";
|
|
36
38
|
|
|
@@ -43,8 +45,11 @@ console.log(result);
|
|
|
43
45
|
|
|
44
46
|
Then run `index.ts` with Bun. Bun will automatically create `sqlite.db` and execute the query.
|
|
45
47
|
|
|
46
|
-
```sh
|
|
47
|
-
|
|
48
|
+
```sh terminal icon="terminal"
|
|
49
|
+
bun run index.ts
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```txt
|
|
48
53
|
{
|
|
49
54
|
text: "hello world"
|
|
50
55
|
}
|
|
@@ -54,7 +59,7 @@ $ bun run index.ts
|
|
|
54
59
|
|
|
55
60
|
Lets give our database a proper schema. Create a `schema.ts` file and define a `movies` table.
|
|
56
61
|
|
|
57
|
-
```ts
|
|
62
|
+
```ts schema.ts icon="/icons/typescript.svg"
|
|
58
63
|
import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
|
|
59
64
|
|
|
60
65
|
export const movies = sqliteTable("movies", {
|
|
@@ -68,15 +73,15 @@ export const movies = sqliteTable("movies", {
|
|
|
68
73
|
|
|
69
74
|
We can use the `drizzle-kit` CLI to generate an initial SQL migration.
|
|
70
75
|
|
|
71
|
-
```sh
|
|
72
|
-
|
|
76
|
+
```sh terminal icon="terminal"
|
|
77
|
+
bunx drizzle-kit generate --dialect sqlite --schema ./schema.ts
|
|
73
78
|
```
|
|
74
79
|
|
|
75
80
|
---
|
|
76
81
|
|
|
77
82
|
This creates a new `drizzle` directory containing a `.sql` migration file and `meta` directory.
|
|
78
83
|
|
|
79
|
-
```txt
|
|
84
|
+
```txt File Tree icon="folder-tree"
|
|
80
85
|
drizzle
|
|
81
86
|
├── 0000_ordinary_beyonder.sql
|
|
82
87
|
└── meta
|
|
@@ -90,7 +95,7 @@ We can execute these migrations with a simple `migrate.ts` script.
|
|
|
90
95
|
|
|
91
96
|
This script creates a new connection to a SQLite database that writes to `sqlite.db`, then executes all unexecuted migrations in the `drizzle` directory.
|
|
92
97
|
|
|
93
|
-
```ts
|
|
98
|
+
```ts migrate.ts icon="/icons/typescript.svg"
|
|
94
99
|
import { migrate } from "drizzle-orm/bun-sqlite/migrator";
|
|
95
100
|
|
|
96
101
|
import { drizzle } from "drizzle-orm/bun-sqlite";
|
|
@@ -105,15 +110,15 @@ migrate(db, { migrationsFolder: "./drizzle" });
|
|
|
105
110
|
|
|
106
111
|
We can run this script with `bun` to execute the migration.
|
|
107
112
|
|
|
108
|
-
```sh
|
|
109
|
-
|
|
113
|
+
```sh terminal icon="terminal"
|
|
114
|
+
bun run migrate.ts
|
|
110
115
|
```
|
|
111
116
|
|
|
112
117
|
---
|
|
113
118
|
|
|
114
119
|
Now that we have a database, let's add some data to it. Create a `seed.ts` file with the following contents.
|
|
115
120
|
|
|
116
|
-
```ts
|
|
121
|
+
```ts seed.ts icon="/icons/typescript.svg"
|
|
117
122
|
import { db } from "./db";
|
|
118
123
|
import * as schema from "./schema";
|
|
119
124
|
|
|
@@ -139,8 +144,11 @@ console.log(`Seeding complete.`);
|
|
|
139
144
|
|
|
140
145
|
Then run this file.
|
|
141
146
|
|
|
142
|
-
```sh
|
|
143
|
-
|
|
147
|
+
```sh terminal icon="terminal"
|
|
148
|
+
bun run seed.ts
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```txt
|
|
144
152
|
Seeding complete.
|
|
145
153
|
```
|
|
146
154
|
|
|
@@ -148,7 +156,7 @@ Seeding complete.
|
|
|
148
156
|
|
|
149
157
|
We finally have a database with a schema and some sample data. Let's use Drizzle to query it. Replace the contents of `index.ts` with the following.
|
|
150
158
|
|
|
151
|
-
```ts
|
|
159
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
152
160
|
import * as schema from "./schema";
|
|
153
161
|
import { db } from "./db";
|
|
154
162
|
|
|
@@ -160,9 +168,11 @@ console.log(result);
|
|
|
160
168
|
|
|
161
169
|
Then run the file. You should see the three movies we inserted.
|
|
162
170
|
|
|
163
|
-
```sh
|
|
164
|
-
$ bun run index.ts
|
|
171
|
+
```sh terminal icon="terminal"
|
|
165
172
|
bun run index.ts
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
```txt
|
|
166
176
|
[
|
|
167
177
|
{
|
|
168
178
|
id: 1,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Use EdgeDB with Bun
|
|
3
|
+
sidebarTitle: EdgeDB with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
EdgeDB is a graph-relational database powered by Postgres under the hood. It provides a declarative schema language, migrations system, and object-oriented query language, in addition to supporting raw SQL queries. It solves the object-relational mapping problem at the database layer, eliminating the need for an ORM library in your application code.
|
|
@@ -8,34 +10,37 @@ EdgeDB is a graph-relational database powered by Postgres under the hood. It pro
|
|
|
8
10
|
|
|
9
11
|
First, [install EdgeDB](https://www.edgedb.com/install) if you haven't already.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
<CodeGroup>
|
|
12
14
|
|
|
13
|
-
```sh
|
|
14
|
-
|
|
15
|
+
```sh Linux/macOS terminal icon="terminal"
|
|
16
|
+
curl --proto '=https' --tlsv1.2 -sSf https://sh.edgedb.com | sh
|
|
15
17
|
```
|
|
16
18
|
|
|
17
|
-
```sh
|
|
18
|
-
|
|
19
|
+
```sh Windows terminal icon="windows"
|
|
20
|
+
iwr https://ps1.edgedb.com -useb | iex
|
|
19
21
|
```
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
</CodeGroup>
|
|
22
24
|
|
|
23
25
|
---
|
|
24
26
|
|
|
25
27
|
Use `bun init` to create a fresh project.
|
|
26
28
|
|
|
27
|
-
```sh
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
```sh terminal icon="terminal"
|
|
30
|
+
mkdir my-edgedb-app
|
|
31
|
+
cd my-edgedb-app
|
|
32
|
+
bun init -y
|
|
31
33
|
```
|
|
32
34
|
|
|
33
35
|
---
|
|
34
36
|
|
|
35
37
|
We'll use the EdgeDB CLI to initialize an EdgeDB instance for our project. This creates an `edgedb.toml` file in our project root.
|
|
36
38
|
|
|
37
|
-
```sh
|
|
38
|
-
|
|
39
|
+
```sh terminal icon="terminal"
|
|
40
|
+
edgedb project init
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```txt
|
|
39
44
|
No `edgedb.toml` found in `/Users/colinmcd94/Documents/bun/fun/examples/my-edgedb-app` or above
|
|
40
45
|
Do you want to initialize a new project? [Y/n]
|
|
41
46
|
> Y
|
|
@@ -64,12 +69,18 @@ To connect to my_edgedb_app, run `edgedb`
|
|
|
64
69
|
|
|
65
70
|
To see if the database is running, let's open a REPL and run a simple query.
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
```sh
|
|
70
|
-
$ edgedb
|
|
72
|
+
```sh terminal icon="terminal"
|
|
73
|
+
edgedb
|
|
71
74
|
edgedb> select 1 + 1;
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```txt
|
|
72
78
|
2
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Then run `\quit` to exit the REPL.
|
|
82
|
+
|
|
83
|
+
```sh terminal icon="terminal"
|
|
73
84
|
edgedb> \quit
|
|
74
85
|
```
|
|
75
86
|
|
|
@@ -77,7 +88,7 @@ edgedb> \quit
|
|
|
77
88
|
|
|
78
89
|
With the project initialized, we can define a schema. The `edgedb project init` command already created a `dbschema/default.esdl` file to contain our schema.
|
|
79
90
|
|
|
80
|
-
```txt
|
|
91
|
+
```txt File Tree icon="folder-tree"
|
|
81
92
|
dbschema
|
|
82
93
|
├── default.esdl
|
|
83
94
|
└── migrations
|
|
@@ -87,7 +98,7 @@ dbschema
|
|
|
87
98
|
|
|
88
99
|
Open that file and paste the following contents.
|
|
89
100
|
|
|
90
|
-
```
|
|
101
|
+
```ts default.esdl icon="file-code"
|
|
91
102
|
module default {
|
|
92
103
|
type Movie {
|
|
93
104
|
required title: str;
|
|
@@ -100,10 +111,19 @@ module default {
|
|
|
100
111
|
|
|
101
112
|
Then generate and apply an initial migration.
|
|
102
113
|
|
|
103
|
-
```sh
|
|
104
|
-
|
|
114
|
+
```sh terminal icon="terminal"
|
|
115
|
+
edgedb migration create
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
```txt
|
|
105
119
|
Created /Users/colinmcd94/Documents/bun/fun/examples/my-edgedb-app/dbschema/migrations/00001.edgeql, id: m1uwekrn4ni4qs7ul7hfar4xemm5kkxlpswolcoyqj3xdhweomwjrq
|
|
106
|
-
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
```sh terminal icon="terminal"
|
|
123
|
+
edgedb migrate
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```txt
|
|
107
127
|
Applied m1uwekrn4ni4qs7ul7hfar4xemm5kkxlpswolcoyqj3xdhweomwjrq (00001.edgeql)
|
|
108
128
|
```
|
|
109
129
|
|
|
@@ -111,10 +131,10 @@ Applied m1uwekrn4ni4qs7ul7hfar4xemm5kkxlpswolcoyqj3xdhweomwjrq (00001.edgeql)
|
|
|
111
131
|
|
|
112
132
|
With our schema applied, let's execute some queries using EdgeDB's JavaScript client library. We'll install the client library and EdgeDB's codegen CLI, and create a `seed.ts`.file.
|
|
113
133
|
|
|
114
|
-
```sh
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
134
|
+
```sh terminal icon="terminal"
|
|
135
|
+
bun add edgedb
|
|
136
|
+
bun add -D @edgedb/generate
|
|
137
|
+
touch seed.ts
|
|
118
138
|
```
|
|
119
139
|
|
|
120
140
|
---
|
|
@@ -123,7 +143,7 @@ Paste the following code into `seed.ts`.
|
|
|
123
143
|
|
|
124
144
|
The client auto-connects to the database. We insert a couple movies using the `.execute()` method. We will use EdgeQL's `for` expression to turn this bulk insert into a single optimized query.
|
|
125
145
|
|
|
126
|
-
```ts
|
|
146
|
+
```ts seed.ts icon="/icons/typescript.svg"
|
|
127
147
|
import { createClient } from "edgedb";
|
|
128
148
|
|
|
129
149
|
const client = createClient();
|
|
@@ -154,8 +174,11 @@ process.exit();
|
|
|
154
174
|
|
|
155
175
|
Then run this file with Bun.
|
|
156
176
|
|
|
157
|
-
```sh
|
|
158
|
-
|
|
177
|
+
```sh terminal icon="terminal"
|
|
178
|
+
bun run seed.ts
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
```txt
|
|
159
182
|
Seeding complete.
|
|
160
183
|
```
|
|
161
184
|
|
|
@@ -163,8 +186,11 @@ Seeding complete.
|
|
|
163
186
|
|
|
164
187
|
EdgeDB implements a number of code generation tools for TypeScript. To query our newly seeded database in a typesafe way, we'll use `@edgedb/generate` to code-generate the EdgeQL query builder.
|
|
165
188
|
|
|
166
|
-
```sh
|
|
167
|
-
|
|
189
|
+
```sh terminal icon="terminal"
|
|
190
|
+
bunx @edgedb/generate edgeql-js
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
```txt
|
|
168
194
|
Generating query builder...
|
|
169
195
|
Detected tsconfig.json, generating TypeScript files.
|
|
170
196
|
To override this, use the --target flag.
|
|
@@ -186,7 +212,7 @@ the query builder directory? The following line will be added:
|
|
|
186
212
|
|
|
187
213
|
In `index.ts`, we can import the generated query builder from `./dbschema/edgeql-js` and write a simple select query.
|
|
188
214
|
|
|
189
|
-
```ts
|
|
215
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
190
216
|
import { createClient } from "edgedb";
|
|
191
217
|
import e from "./dbschema/edgeql-js";
|
|
192
218
|
|
|
@@ -207,8 +233,11 @@ results; // { title: string, releaseYear: number | null }[]
|
|
|
207
233
|
|
|
208
234
|
Running the file with Bun, we can see the list of movies we inserted.
|
|
209
235
|
|
|
210
|
-
```sh
|
|
211
|
-
|
|
236
|
+
```sh terminal icon="terminal"
|
|
237
|
+
bun run index.ts
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
```txt
|
|
212
241
|
[
|
|
213
242
|
{
|
|
214
243
|
title: "The Matrix",
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Build an HTTP server using Elysia and Bun
|
|
3
|
+
sidebarTitle: Elysia with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
[Elysia](https://elysiajs.com) is a Bun-first performance focused web framework that takes full advantage of Bun's HTTP, file system, and hot reloading APIs. Get started with `bun create`.
|
|
6
8
|
|
|
7
|
-
```bash
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
```bash terminal icon="terminal"
|
|
10
|
+
bun create elysia myapp
|
|
11
|
+
cd myapp
|
|
12
|
+
bun run dev
|
|
11
13
|
```
|
|
12
14
|
|
|
13
15
|
---
|
|
14
16
|
|
|
15
17
|
To define a simple HTTP route and start a server with Elysia:
|
|
16
18
|
|
|
17
|
-
```ts
|
|
18
|
-
import { Elysia } from
|
|
19
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
20
|
+
import { Elysia } from "elysia";
|
|
19
21
|
|
|
20
|
-
const app = new Elysia()
|
|
21
|
-
.get('/', () => 'Hello Elysia')
|
|
22
|
-
.listen(8080)
|
|
22
|
+
const app = new Elysia().get("/", () => "Hello Elysia").listen(8080);
|
|
23
23
|
|
|
24
|
-
console.log(`🦊 Elysia is running at on port ${app.server?.port}...`)
|
|
24
|
+
console.log(`🦊 Elysia is running at on port ${app.server?.port}...`);
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
---
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Build an HTTP server using Express and Bun
|
|
3
|
+
sidebarTitle: Express with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Express and other major Node.js HTTP libraries should work out of the box. Bun implements the [`node:http`](https://nodejs.org/api/http.html) and [`node:https`](https://nodejs.org/api/https.html) modules that these libraries rely on.
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
Refer to the [Runtime > Node.js APIs](https://bun.com/docs/runtime/nodejs-apis#node-http) page for more detailed
|
|
9
|
-
|
|
9
|
+
<Note>
|
|
10
|
+
Refer to the [Runtime > Node.js APIs](https://bun.com/docs/runtime/nodejs-apis#node-http) page for more detailed
|
|
11
|
+
compatibility information.
|
|
12
|
+
</Note>
|
|
10
13
|
|
|
11
|
-
```sh
|
|
12
|
-
|
|
14
|
+
```sh terminal icon="terminal"
|
|
15
|
+
bun add express
|
|
13
16
|
```
|
|
14
17
|
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
To define a simple HTTP route and start a server with Express:
|
|
18
21
|
|
|
19
|
-
```ts
|
|
22
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
20
23
|
import express from "express";
|
|
21
24
|
|
|
22
25
|
const app = express();
|
|
@@ -35,6 +38,6 @@ app.listen(port, () => {
|
|
|
35
38
|
|
|
36
39
|
To start the server on `localhost`:
|
|
37
40
|
|
|
38
|
-
```sh
|
|
39
|
-
|
|
41
|
+
```sh terminal icon="terminal"
|
|
42
|
+
bun server.ts
|
|
40
43
|
```
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Build an HTTP server using Hono and Bun
|
|
3
|
+
sidebarTitle: Hono with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
[Hono](https://github.com/honojs/hono) is a lightweight ultrafast web framework designed for the edge.
|
|
6
8
|
|
|
7
|
-
```ts
|
|
9
|
+
```ts server.ts icon="/icons/typescript.svg"
|
|
8
10
|
import { Hono } from "hono";
|
|
9
11
|
const app = new Hono();
|
|
10
12
|
|
|
@@ -17,21 +19,27 @@ export default app;
|
|
|
17
19
|
|
|
18
20
|
Use `create-hono` to get started with one of Hono's project templates. Select `bun` when prompted for a template.
|
|
19
21
|
|
|
20
|
-
```sh
|
|
21
|
-
|
|
22
|
+
```sh terminal icon="terminal"
|
|
23
|
+
bun create hono myapp
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```txt
|
|
22
27
|
✔ Which template do you want to use? › bun
|
|
23
28
|
cloned honojs/starter#main to /path/to/myapp
|
|
24
29
|
✔ Copied project files
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```sh terminal icon="terminal"
|
|
33
|
+
cd myapp
|
|
34
|
+
bun install
|
|
27
35
|
```
|
|
28
36
|
|
|
29
37
|
---
|
|
30
38
|
|
|
31
39
|
Then start the dev server and visit [localhost:3000](http://localhost:3000).
|
|
32
40
|
|
|
33
|
-
```sh
|
|
34
|
-
|
|
41
|
+
```sh terminal icon="terminal"
|
|
42
|
+
bun run dev
|
|
35
43
|
```
|
|
36
44
|
|
|
37
45
|
---
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Read and write data to MongoDB using Mongoose and Bun
|
|
3
|
+
sidebarTitle: Mongoose with Bun
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
MongoDB and Mongoose work out of the box with Bun. This guide assumes you've already installed MongoDB and are running it as background process/service on your development machine. Follow [this guide](https://www.mongodb.com/docs/manual/installation/) for details.
|
|
@@ -8,31 +10,31 @@ MongoDB and Mongoose work out of the box with Bun. This guide assumes you've alr
|
|
|
8
10
|
|
|
9
11
|
Once MongoDB is running, create a directory and initialize it with `bun init`.
|
|
10
12
|
|
|
11
|
-
```sh
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
```sh terminal icon="terminal"
|
|
14
|
+
mkdir mongoose-app
|
|
15
|
+
cd mongoose-app
|
|
16
|
+
bun init
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
---
|
|
18
20
|
|
|
19
21
|
Then add Mongoose as a dependency.
|
|
20
22
|
|
|
21
|
-
```sh
|
|
22
|
-
|
|
23
|
+
```sh terminal icon="terminal"
|
|
24
|
+
bun add mongoose
|
|
23
25
|
```
|
|
24
26
|
|
|
25
27
|
---
|
|
26
28
|
|
|
27
29
|
In `schema.ts` we'll declare and export a simple `Animal` model.
|
|
28
30
|
|
|
29
|
-
```ts
|
|
30
|
-
import * as mongoose from
|
|
31
|
+
```ts schema.ts icon="/icons/typescript.svg"
|
|
32
|
+
import * as mongoose from "mongoose";
|
|
31
33
|
|
|
32
34
|
const animalSchema = new mongoose.Schema(
|
|
33
35
|
{
|
|
34
|
-
|
|
35
|
-
sound: {type: String, required: true},
|
|
36
|
+
title: { type: String, required: true },
|
|
37
|
+
sound: { type: String, required: true },
|
|
36
38
|
},
|
|
37
39
|
{
|
|
38
40
|
methods: {
|
|
@@ -40,28 +42,28 @@ const animalSchema = new mongoose.Schema(
|
|
|
40
42
|
console.log(`${this.sound}!`);
|
|
41
43
|
},
|
|
42
44
|
},
|
|
43
|
-
}
|
|
45
|
+
},
|
|
44
46
|
);
|
|
45
47
|
|
|
46
48
|
export type Animal = mongoose.InferSchemaType<typeof animalSchema>;
|
|
47
|
-
export const Animal = mongoose.model(
|
|
49
|
+
export const Animal = mongoose.model("Animal", animalSchema);
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
---
|
|
51
53
|
|
|
52
54
|
Now from `index.ts` we can import `Animal`, connect to MongoDB, and add some data to our database.
|
|
53
55
|
|
|
54
|
-
```ts
|
|
55
|
-
import * as mongoose from
|
|
56
|
-
import {Animal} from
|
|
56
|
+
```ts index.ts icon="/icons/typescript.svg"
|
|
57
|
+
import * as mongoose from "mongoose";
|
|
58
|
+
import { Animal } from "./schema";
|
|
57
59
|
|
|
58
60
|
// connect to database
|
|
59
|
-
await mongoose.connect(
|
|
61
|
+
await mongoose.connect("mongodb://127.0.0.1:27017/mongoose-app");
|
|
60
62
|
|
|
61
63
|
// create new Animal
|
|
62
64
|
const cow = new Animal({
|
|
63
|
-
|
|
64
|
-
sound:
|
|
65
|
+
title: "Cow",
|
|
66
|
+
sound: "Moo",
|
|
65
67
|
});
|
|
66
68
|
await cow.save(); // saves to the database
|
|
67
69
|
|
|
@@ -77,8 +79,11 @@ await mongoose.disconnect();
|
|
|
77
79
|
|
|
78
80
|
Let's run this with `bun run`.
|
|
79
81
|
|
|
80
|
-
```bash
|
|
81
|
-
|
|
82
|
+
```bash terminal icon="terminal"
|
|
83
|
+
bun run index.ts
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```txt
|
|
82
87
|
Moo!
|
|
83
88
|
```
|
|
84
89
|
|