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.
Files changed (370) hide show
  1. package/bun.d.ts +102 -6
  2. package/docs/README.md +28 -0
  3. package/docs/bundler/bytecode.mdx +465 -0
  4. package/docs/bundler/{css.md → css.mdx} +97 -101
  5. package/docs/bundler/esbuild.mdx +253 -0
  6. package/docs/bundler/{executables.md → executables.mdx} +130 -221
  7. package/docs/bundler/fullstack.mdx +1064 -0
  8. package/docs/bundler/{hmr.md → hot-reloading.mdx} +74 -79
  9. package/docs/bundler/{html.md → html-static.mdx} +148 -111
  10. package/docs/bundler/index.mdx +1499 -0
  11. package/docs/bundler/loaders.mdx +356 -0
  12. package/docs/bundler/{macros.md → macros.mdx} +83 -84
  13. package/docs/bundler/minifier.mdx +1306 -0
  14. package/docs/bundler/plugins.mdx +411 -0
  15. package/docs/feedback.mdx +85 -0
  16. package/docs/guides/binary/{arraybuffer-to-array.md → arraybuffer-to-array.mdx} +3 -1
  17. package/docs/guides/binary/{arraybuffer-to-blob.md → arraybuffer-to-blob.mdx} +3 -1
  18. package/docs/guides/binary/{arraybuffer-to-buffer.md → arraybuffer-to-buffer.mdx} +3 -1
  19. package/docs/guides/binary/{arraybuffer-to-string.md → arraybuffer-to-string.mdx} +3 -1
  20. package/docs/guides/binary/{arraybuffer-to-typedarray.md → arraybuffer-to-typedarray.mdx} +3 -1
  21. package/docs/guides/binary/{blob-to-arraybuffer.md → blob-to-arraybuffer.mdx} +3 -1
  22. package/docs/guides/binary/{blob-to-dataview.md → blob-to-dataview.mdx} +3 -1
  23. package/docs/guides/binary/{blob-to-stream.md → blob-to-stream.mdx} +3 -1
  24. package/docs/guides/binary/{blob-to-string.md → blob-to-string.mdx} +3 -1
  25. package/docs/guides/binary/{blob-to-typedarray.md → blob-to-typedarray.mdx} +3 -1
  26. package/docs/guides/binary/{buffer-to-arraybuffer.md → buffer-to-arraybuffer.mdx} +3 -1
  27. package/docs/guides/binary/{buffer-to-blob.md → buffer-to-blob.mdx} +3 -1
  28. package/docs/guides/binary/{buffer-to-readablestream.md → buffer-to-readablestream.mdx} +3 -1
  29. package/docs/guides/binary/{buffer-to-string.md → buffer-to-string.mdx} +3 -1
  30. package/docs/guides/binary/{buffer-to-typedarray.md → buffer-to-typedarray.mdx} +3 -1
  31. package/docs/guides/binary/{dataview-to-string.md → dataview-to-string.mdx} +3 -1
  32. package/docs/guides/binary/{typedarray-to-arraybuffer.md → typedarray-to-arraybuffer.mdx} +3 -1
  33. package/docs/guides/binary/{typedarray-to-blob.md → typedarray-to-blob.mdx} +3 -1
  34. package/docs/guides/binary/{typedarray-to-buffer.md → typedarray-to-buffer.mdx} +3 -1
  35. package/docs/guides/binary/{typedarray-to-dataview.md → typedarray-to-dataview.mdx} +3 -1
  36. package/docs/guides/binary/{typedarray-to-readablestream.md → typedarray-to-readablestream.mdx} +3 -1
  37. package/docs/guides/binary/{typedarray-to-string.md → typedarray-to-string.mdx} +3 -1
  38. package/docs/guides/deployment/aws-lambda.mdx +204 -0
  39. package/docs/guides/deployment/digital-ocean.mdx +161 -0
  40. package/docs/guides/deployment/google-cloud-run.mdx +197 -0
  41. package/docs/guides/deployment/{railway.md → railway.mdx} +42 -54
  42. package/docs/guides/deployment/render.mdx +82 -0
  43. package/docs/guides/deployment/vercel.mdx +99 -0
  44. package/docs/guides/ecosystem/{astro.md → astro.mdx} +16 -6
  45. package/docs/guides/ecosystem/{discordjs.md → discordjs.mdx} +21 -18
  46. package/docs/guides/ecosystem/{docker.md → docker.mdx} +25 -14
  47. package/docs/guides/ecosystem/{drizzle.md → drizzle.mdx} +32 -22
  48. package/docs/guides/ecosystem/{edgedb.md → edgedb.mdx} +63 -34
  49. package/docs/guides/ecosystem/{elysia.md → elysia.mdx} +11 -11
  50. package/docs/guides/ecosystem/{express.md → express.mdx} +12 -9
  51. package/docs/guides/ecosystem/{hono.md → hono.mdx} +16 -8
  52. package/docs/guides/ecosystem/{mongoose.md → mongoose.mdx} +26 -21
  53. package/docs/guides/ecosystem/{neon-drizzle.md → neon-drizzle.mdx} +49 -35
  54. package/docs/guides/ecosystem/{neon-serverless-postgres.md → neon-serverless-postgres.mdx} +16 -11
  55. package/docs/guides/ecosystem/{nextjs.md → nextjs.mdx} +18 -10
  56. package/docs/guides/ecosystem/{nuxt.md → nuxt.mdx} +45 -11
  57. package/docs/guides/ecosystem/{pm2.md → pm2.mdx} +7 -9
  58. package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
  59. package/docs/guides/ecosystem/prisma.mdx +164 -0
  60. package/docs/guides/ecosystem/{qwik.md → qwik.mdx} +18 -11
  61. package/docs/guides/ecosystem/{react.md → react.mdx} +9 -7
  62. package/docs/guides/ecosystem/{remix.md → remix.mdx} +45 -26
  63. package/docs/guides/ecosystem/{sentry.md → sentry.mdx} +7 -5
  64. package/docs/guides/ecosystem/{solidstart.md → solidstart.mdx} +21 -13
  65. package/docs/guides/ecosystem/{ssr-react.md → ssr-react.mdx} +9 -11
  66. package/docs/guides/ecosystem/{stric.md → stric.mdx} +16 -17
  67. package/docs/guides/ecosystem/{sveltekit.md → sveltekit.mdx} +42 -29
  68. package/docs/guides/ecosystem/{systemd.md → systemd.mdx} +27 -26
  69. package/docs/guides/ecosystem/upstash.mdx +87 -0
  70. package/docs/guides/ecosystem/{vite.md → vite.mdx} +20 -14
  71. package/docs/guides/html-rewriter/{extract-links.md → extract-links.mdx} +11 -7
  72. package/docs/guides/html-rewriter/{extract-social-meta.md → extract-social-meta.mdx} +6 -2
  73. package/docs/guides/http/{cluster.md → cluster.mdx} +10 -7
  74. package/docs/guides/http/{fetch-unix.md → fetch-unix.mdx} +5 -3
  75. package/docs/guides/http/{fetch.md → fetch.mdx} +5 -3
  76. package/docs/guides/http/{file-uploads.md → file-uploads.mdx} +18 -15
  77. package/docs/guides/http/{hot.md → hot.mdx} +9 -7
  78. package/docs/guides/http/{proxy.md → proxy.mdx} +7 -5
  79. package/docs/guides/http/{server.md → server.mdx} +4 -2
  80. package/docs/guides/http/{simple.md → simple.mdx} +4 -2
  81. package/docs/guides/http/{stream-file.md → stream-file.mdx} +6 -4
  82. package/docs/guides/http/{stream-iterator.md → stream-iterator.mdx} +5 -3
  83. package/docs/guides/http/{stream-node-streams-in-bun.md → stream-node-streams-in-bun.mdx} +4 -2
  84. package/docs/guides/http/{tls.md → tls.mdx} +5 -3
  85. package/docs/guides/index.mdx +10 -0
  86. package/docs/guides/install/{add-dev.md → add-dev.mdx} +8 -6
  87. package/docs/guides/install/add-git.mdx +38 -0
  88. package/docs/guides/install/{add-optional.md → add-optional.mdx} +7 -5
  89. package/docs/guides/install/{add-peer.md → add-peer.mdx} +13 -11
  90. package/docs/guides/install/{add-tarball.md → add-tarball.mdx} +7 -5
  91. package/docs/guides/install/{add.md → add.mdx} +12 -10
  92. package/docs/guides/install/{azure-artifacts.md → azure-artifacts.mdx} +15 -12
  93. package/docs/guides/{runtime/cicd.md → install/cicd.mdx} +13 -13
  94. package/docs/guides/install/{custom-registry.md → custom-registry.mdx} +6 -4
  95. package/docs/guides/install/{from-npm-install-to-bun-install.md → from-npm-install-to-bun-install.mdx} +50 -34
  96. package/docs/guides/install/{git-diff-bun-lockfile.md → git-diff-bun-lockfile.mdx} +14 -11
  97. package/docs/guides/install/{jfrog-artifactory.md → jfrog-artifactory.mdx} +4 -4
  98. package/docs/guides/install/{npm-alias.md → npm-alias.mdx} +6 -4
  99. package/docs/guides/install/{registry-scope.md → registry-scope.mdx} +6 -4
  100. package/docs/guides/install/{trusted.md → trusted.mdx} +22 -18
  101. package/docs/guides/install/{workspaces.md → workspaces.mdx} +13 -13
  102. package/docs/guides/install/{yarnlock.md → yarnlock.mdx} +15 -9
  103. package/docs/guides/process/{argv.md → argv.mdx} +17 -9
  104. package/docs/guides/process/{ctrl-c.md → ctrl-c.mdx} +4 -2
  105. package/docs/guides/process/{ipc.md → ipc.mdx} +13 -10
  106. package/docs/guides/process/{nanoseconds.md → nanoseconds.mdx} +3 -1
  107. package/docs/guides/process/{os-signals.md → os-signals.mdx} +3 -1
  108. package/docs/guides/process/{spawn-stderr.md → spawn-stderr.mdx} +4 -1
  109. package/docs/guides/process/{spawn-stdout.md → spawn-stdout.mdx} +3 -1
  110. package/docs/guides/process/{spawn.md → spawn.mdx} +3 -1
  111. package/docs/guides/process/{stdin.md → stdin.mdx} +15 -7
  112. package/docs/guides/read-file/{arraybuffer.md → arraybuffer.mdx} +5 -3
  113. package/docs/guides/read-file/{buffer.md → buffer.mdx} +4 -2
  114. package/docs/guides/read-file/{exists.md → exists.mdx} +4 -2
  115. package/docs/guides/read-file/{json.md → json.mdx} +4 -2
  116. package/docs/guides/read-file/{mime.md → mime.mdx} +3 -1
  117. package/docs/guides/read-file/{stream.md → stream.mdx} +3 -1
  118. package/docs/guides/read-file/{string.md → string.mdx} +3 -1
  119. package/docs/guides/read-file/{uint8array.md → uint8array.mdx} +3 -1
  120. package/docs/guides/read-file/{watch.md → watch.mdx} +6 -8
  121. package/docs/guides/runtime/{build-time-constants.md → build-time-constants.mdx} +24 -22
  122. package/docs/guides/{install/cicd.md → runtime/cicd.mdx} +11 -7
  123. package/docs/guides/runtime/{codesign-macos-executable.md → codesign-macos-executable.mdx} +14 -9
  124. package/docs/guides/runtime/{define-constant.md → define-constant.mdx} +20 -16
  125. package/docs/guides/runtime/{delete-directory.md → delete-directory.mdx} +5 -3
  126. package/docs/guides/runtime/{delete-file.md → delete-file.mdx} +4 -2
  127. package/docs/guides/runtime/{heap-snapshot.md → heap-snapshot.mdx} +5 -3
  128. package/docs/guides/runtime/{import-html.md → import-html.mdx} +4 -2
  129. package/docs/guides/runtime/{import-json.md → import-json.mdx} +6 -4
  130. package/docs/guides/runtime/{import-toml.md → import-toml.mdx} +5 -3
  131. package/docs/guides/runtime/{import-yaml.md → import-yaml.mdx} +9 -7
  132. package/docs/guides/runtime/{read-env.md → read-env.mdx} +10 -5
  133. package/docs/guides/runtime/{set-env.md → set-env.mdx} +14 -10
  134. package/docs/guides/runtime/{shell.md → shell.mdx} +6 -4
  135. package/docs/guides/runtime/{timezone.md → timezone.mdx} +10 -7
  136. package/docs/guides/runtime/{tsconfig-paths.md → tsconfig-paths.mdx} +5 -3
  137. package/docs/guides/runtime/{typescript.md → typescript.mdx} +8 -6
  138. package/docs/guides/runtime/{vscode-debugger.md → vscode-debugger.mdx} +12 -11
  139. package/docs/guides/runtime/{web-debugger.md → web-debugger.mdx} +39 -18
  140. package/docs/guides/streams/{node-readable-to-arraybuffer.md → node-readable-to-arraybuffer.mdx} +3 -1
  141. package/docs/guides/streams/{node-readable-to-blob.md → node-readable-to-blob.mdx} +3 -1
  142. package/docs/guides/streams/{node-readable-to-json.md → node-readable-to-json.mdx} +3 -1
  143. package/docs/guides/streams/{node-readable-to-string.md → node-readable-to-string.mdx} +3 -1
  144. package/docs/guides/streams/{node-readable-to-uint8array.md → node-readable-to-uint8array.mdx} +3 -1
  145. package/docs/guides/streams/{to-array.md → to-array.mdx} +3 -1
  146. package/docs/guides/streams/{to-arraybuffer.md → to-arraybuffer.mdx} +3 -1
  147. package/docs/guides/streams/{to-blob.md → to-blob.mdx} +3 -1
  148. package/docs/guides/streams/{to-buffer.md → to-buffer.mdx} +3 -1
  149. package/docs/guides/streams/{to-json.md → to-json.mdx} +4 -2
  150. package/docs/guides/streams/{to-string.md → to-string.mdx} +3 -1
  151. package/docs/guides/streams/{to-typedarray.md → to-typedarray.mdx} +3 -1
  152. package/docs/guides/test/{bail.md → bail.mdx} +7 -5
  153. package/docs/guides/test/{coverage-threshold.md → coverage-threshold.mdx} +14 -7
  154. package/docs/guides/test/{coverage.md → coverage.mdx} +9 -4
  155. package/docs/guides/test/{happy-dom.md → happy-dom.mdx} +13 -8
  156. package/docs/guides/test/{migrate-from-jest.md → migrate-from-jest.mdx} +19 -37
  157. package/docs/guides/test/{mock-clock.md → mock-clock.mdx} +3 -1
  158. package/docs/guides/test/{mock-functions.md → mock-functions.mdx} +7 -5
  159. package/docs/guides/test/{rerun-each.md → rerun-each.mdx} +5 -3
  160. package/docs/guides/test/{run-tests.md → run-tests.mdx} +16 -11
  161. package/docs/guides/test/{skip-tests.md → skip-tests.mdx} +8 -4
  162. package/docs/guides/test/{snapshot.md → snapshot.mdx} +20 -13
  163. package/docs/guides/test/spy-on.mdx +49 -0
  164. package/docs/guides/test/{svelte-test.md → svelte-test.mdx} +16 -23
  165. package/docs/guides/test/{testing-library.md → testing-library.mdx} +18 -17
  166. package/docs/guides/test/{timeout.md → timeout.mdx} +5 -3
  167. package/docs/guides/test/{todo-tests.md → todo-tests.mdx} +13 -6
  168. package/docs/guides/test/{update-snapshots.md → update-snapshots.mdx} +9 -6
  169. package/docs/guides/test/{watch-mode.md → watch-mode.mdx} +9 -4
  170. package/docs/guides/util/{base64.md → base64.mdx} +3 -1
  171. package/docs/guides/util/{deep-equals.md → deep-equals.mdx} +5 -3
  172. package/docs/guides/util/{deflate.md → deflate.mdx} +3 -1
  173. package/docs/guides/util/{detect-bun.md → detect-bun.mdx} +3 -1
  174. package/docs/guides/util/{entrypoint.md → entrypoint.mdx} +4 -2
  175. package/docs/guides/util/{escape-html.md → escape-html.mdx} +3 -1
  176. package/docs/guides/util/{file-url-to-path.md → file-url-to-path.mdx} +3 -1
  177. package/docs/guides/util/{gzip.md → gzip.mdx} +3 -1
  178. package/docs/guides/util/{hash-a-password.md → hash-a-password.mdx} +3 -1
  179. package/docs/guides/util/{import-meta-dir.md → import-meta-dir.mdx} +4 -2
  180. package/docs/guides/util/{import-meta-file.md → import-meta-file.mdx} +4 -2
  181. package/docs/guides/util/{import-meta-path.md → import-meta-path.mdx} +4 -2
  182. package/docs/guides/util/{javascript-uuid.md → javascript-uuid.mdx} +3 -1
  183. package/docs/guides/util/{main.md → main.mdx} +19 -8
  184. package/docs/guides/util/{path-to-file-url.md → path-to-file-url.mdx} +3 -1
  185. package/docs/guides/util/{sleep.md → sleep.mdx} +3 -1
  186. package/docs/guides/util/{version.md → version.mdx} +6 -4
  187. package/docs/guides/util/{which-path-to-executable-bin.md → which-path-to-executable-bin.mdx} +4 -2
  188. package/docs/guides/websocket/{compression.md → compression.mdx} +5 -3
  189. package/docs/guides/websocket/{context.md → context.mdx} +9 -12
  190. package/docs/guides/websocket/{pubsub.md → pubsub.mdx} +5 -6
  191. package/docs/guides/websocket/{simple.md → simple.mdx} +5 -3
  192. package/docs/guides/write-file/{append.md → append.mdx} +3 -1
  193. package/docs/guides/write-file/{basic.md → basic.mdx} +3 -1
  194. package/docs/guides/write-file/{blob.md → blob.mdx} +3 -1
  195. package/docs/guides/write-file/{cat.md → cat.mdx} +4 -2
  196. package/docs/guides/write-file/{file-cp.md → file-cp.mdx} +3 -1
  197. package/docs/guides/write-file/{filesink.md → filesink.mdx} +3 -1
  198. package/docs/guides/write-file/{response.md → response.mdx} +3 -1
  199. package/docs/guides/write-file/{stdout.md → stdout.mdx} +3 -1
  200. package/docs/guides/write-file/{stream.md → stream.mdx} +3 -1
  201. package/docs/guides/write-file/{unlink.md → unlink.mdx} +3 -1
  202. package/docs/{index.md → index.mdx} +97 -41
  203. package/docs/installation.mdx +365 -0
  204. package/docs/{cli/bunx.md → pm/bunx.mdx} +25 -31
  205. package/docs/{install/catalogs.md → pm/catalogs.mdx} +18 -24
  206. package/docs/{cli/add.md → pm/cli/add.mdx} +61 -55
  207. package/docs/{install/audit.md → pm/cli/audit.mdx} +11 -8
  208. package/docs/{cli/install.md → pm/cli/install.mdx} +208 -81
  209. package/docs/{cli/link.md → pm/cli/link.mdx} +27 -19
  210. package/docs/{cli/outdated.md → pm/cli/outdated.mdx} +119 -12
  211. package/docs/{install/patch.md → pm/cli/patch.mdx} +25 -15
  212. package/docs/{cli/pm.md → pm/cli/pm.mdx} +96 -62
  213. package/docs/{cli/publish.md → pm/cli/publish.mdx} +38 -35
  214. package/docs/pm/cli/remove.mdx +16 -0
  215. package/docs/{cli/update.md → pm/cli/update.mdx} +26 -15
  216. package/docs/{cli/why.md → pm/cli/why.mdx} +27 -10
  217. package/docs/{cli/filter.md → pm/filter.mdx} +26 -14
  218. package/docs/{install/cache.md → pm/global-cache.mdx} +25 -12
  219. package/docs/{install/isolated.md → pm/isolated-installs.mdx} +32 -24
  220. package/docs/{install/lifecycle.md → pm/lifecycle.mdx} +20 -9
  221. package/docs/{install/lockfile.md → pm/lockfile.mdx} +18 -12
  222. package/docs/{install/npmrc.md → pm/npmrc.mdx} +30 -24
  223. package/docs/{install/overrides.md → pm/overrides.mdx} +47 -37
  224. package/docs/{install/registries.md → pm/scopes-registries.mdx} +8 -3
  225. package/docs/{install/security-scanner-api.md → pm/security-scanner-api.mdx} +22 -8
  226. package/docs/{install/workspaces.md → pm/workspaces.mdx} +17 -22
  227. package/docs/project/{benchmarking.md → benchmarking.mdx} +26 -11
  228. package/docs/project/{bindgen.md → bindgen.mdx} +12 -14
  229. package/docs/project/{building-windows.md → building-windows.mdx} +18 -47
  230. package/docs/project/{contributing.md → contributing.mdx} +56 -60
  231. package/docs/project/feedback.mdx +20 -0
  232. package/docs/project/license.mdx +78 -0
  233. package/docs/project/roadmap.mdx +8 -0
  234. package/docs/quickstart.mdx +240 -0
  235. package/docs/runtime/{autoimport.md → auto-install.mdx} +34 -31
  236. package/docs/{api/binary-data.md → runtime/binary-data.mdx} +77 -269
  237. package/docs/runtime/bun-apis.mdx +59 -0
  238. package/docs/runtime/{bunfig.md → bunfig.mdx} +95 -225
  239. package/docs/{api/cc.md → runtime/c-compiler.mdx} +16 -9
  240. package/docs/{api/spawn.md → runtime/child-process.mdx} +69 -119
  241. package/docs/{api/color.md → runtime/color.mdx} +6 -1
  242. package/docs/{api/console.md → runtime/console.mdx} +17 -7
  243. package/docs/{api/cookie.md → runtime/cookies.mdx} +24 -19
  244. package/docs/runtime/{debugger.md → debugger.mdx} +61 -51
  245. package/docs/runtime/environment-variables.mdx +214 -0
  246. package/docs/{api/ffi.md → runtime/ffi.mdx} +53 -45
  247. package/docs/{api/file-io.md → runtime/file-io.mdx} +41 -101
  248. package/docs/{api/file-system-router.md → runtime/file-system-router.mdx} +8 -2
  249. package/docs/{bundler/loaders.md → runtime/file-types.mdx} +56 -112
  250. package/docs/{api/glob.md → runtime/glob.mdx} +4 -1
  251. package/docs/runtime/globals.mdx +72 -0
  252. package/docs/{api/hashing.md → runtime/hashing.mdx} +18 -22
  253. package/docs/{api/html-rewriter.md → runtime/html-rewriter.mdx} +36 -30
  254. package/docs/runtime/http/cookies.mdx +79 -0
  255. package/docs/runtime/http/error-handling.mdx +40 -0
  256. package/docs/runtime/http/metrics.mdx +36 -0
  257. package/docs/runtime/http/routing.mdx +289 -0
  258. package/docs/runtime/http/server.mdx +647 -0
  259. package/docs/runtime/http/tls.mdx +101 -0
  260. package/docs/{api/websockets.md → runtime/http/websockets.mdx} +62 -231
  261. package/docs/{cli/run.md → runtime/index.mdx} +70 -108
  262. package/docs/runtime/jsx.mdx +115 -0
  263. package/docs/runtime/{modules.md → module-resolution.mdx} +83 -61
  264. package/docs/{api/dns.md → runtime/networking/dns.mdx} +23 -22
  265. package/docs/{api/fetch.md → runtime/networking/fetch.mdx} +10 -5
  266. package/docs/{api/tcp.md → runtime/networking/tcp.mdx} +59 -41
  267. package/docs/{api/udp.md → runtime/networking/udp.mdx} +14 -8
  268. package/docs/{api/node-api.md → runtime/node-api.mdx} +5 -0
  269. package/docs/runtime/{nodejs-apis.md → nodejs-compat.mdx} +9 -4
  270. package/docs/{bundler/plugins.md → runtime/plugins.mdx} +17 -61
  271. package/docs/{api/redis.md → runtime/redis.mdx} +65 -80
  272. package/docs/{api/s3.md → runtime/s3.mdx} +79 -66
  273. package/docs/{api/secrets.md → runtime/secrets.mdx} +27 -10
  274. package/docs/{api/semver.md → runtime/semver.mdx} +9 -4
  275. package/docs/runtime/{shell.md → shell.mdx} +52 -20
  276. package/docs/{api/sql.md → runtime/sql.mdx} +129 -99
  277. package/docs/{api/sqlite.md → runtime/sqlite.mdx} +162 -157
  278. package/docs/{api/streams.md → runtime/streams.mdx} +33 -31
  279. package/docs/{cli/bun-create.md → runtime/templating/create.mdx} +74 -143
  280. package/docs/{cli/init.md → runtime/templating/init.mdx} +24 -51
  281. package/docs/{api/transpiler.md → runtime/transpiler.mdx} +50 -38
  282. package/docs/{typescript.md → runtime/typescript.mdx} +7 -2
  283. package/docs/{api/utils.md → runtime/utils.mdx} +81 -50
  284. package/docs/runtime/{hot.md → watch-mode.mdx} +53 -37
  285. package/docs/runtime/web-apis.mdx +29 -0
  286. package/docs/{api/workers.md → runtime/workers.mdx} +28 -22
  287. package/docs/{api/yaml.md → runtime/yaml.mdx} +33 -232
  288. package/docs/snippets/cli/add.mdx +166 -0
  289. package/docs/snippets/cli/build.mdx +196 -0
  290. package/docs/snippets/cli/feedback.mdx +17 -0
  291. package/docs/snippets/cli/init.mdx +84 -0
  292. package/docs/snippets/cli/install.mdx +173 -0
  293. package/docs/snippets/cli/link.mdx +163 -0
  294. package/docs/snippets/cli/outdated.mdx +140 -0
  295. package/docs/snippets/cli/patch.mdx +171 -0
  296. package/docs/snippets/cli/publish.mdx +198 -0
  297. package/docs/snippets/cli/remove.mdx +146 -0
  298. package/docs/snippets/cli/run.mdx +293 -0
  299. package/docs/snippets/cli/test.mdx +100 -0
  300. package/docs/snippets/cli/update.mdx +144 -0
  301. package/docs/snippets/product-card.mdx +32 -0
  302. package/docs/snippets/product-tiles.mdx +94 -0
  303. package/docs/test/code-coverage.mdx +409 -0
  304. package/docs/test/configuration.mdx +467 -0
  305. package/docs/test/{time.md → dates-times.mdx} +23 -20
  306. package/docs/test/{discovery.md → discovery.mdx} +15 -10
  307. package/docs/test/dom.mdx +226 -0
  308. package/docs/{cli/test.md → test/index.mdx} +77 -94
  309. package/docs/test/lifecycle.mdx +348 -0
  310. package/docs/test/mocks.mdx +637 -0
  311. package/docs/test/{reporters.md → reporters.mdx} +15 -15
  312. package/docs/test/runtime-behavior.mdx +342 -0
  313. package/docs/test/snapshots.mdx +434 -0
  314. package/docs/test/writing-tests.mdx +635 -0
  315. package/docs/typescript.mdx +54 -0
  316. package/package.json +8 -6
  317. package/test.d.ts +2 -2
  318. package/docs/api/file.md +0 -19
  319. package/docs/api/globals.md +0 -387
  320. package/docs/api/http.md +0 -1408
  321. package/docs/api/import-meta.md +0 -69
  322. package/docs/benchmarks.md +0 -120
  323. package/docs/bun-flavored-toml.md +0 -42
  324. package/docs/bundler/css_modules.md +0 -145
  325. package/docs/bundler/fullstack.md +0 -418
  326. package/docs/bundler/index.md +0 -1735
  327. package/docs/bundler/intro.md +0 -75
  328. package/docs/bundler/vs-esbuild.md +0 -1127
  329. package/docs/cli/bun-completions.md +0 -3
  330. package/docs/cli/bun-install.md +0 -349
  331. package/docs/cli/bun-upgrade.md +0 -39
  332. package/docs/cli/info.md +0 -65
  333. package/docs/cli/patch-commit.md +0 -11
  334. package/docs/cli/remove.md +0 -7
  335. package/docs/cli/unlink.md +0 -9
  336. package/docs/contributing/upgrading-webkit.md +0 -57
  337. package/docs/ecosystem/elysia.md +0 -24
  338. package/docs/ecosystem/express.md +0 -37
  339. package/docs/ecosystem/hono.md +0 -18
  340. package/docs/ecosystem/react.md +0 -65
  341. package/docs/ecosystem/stric.md +0 -38
  342. package/docs/guides/ecosystem/prisma.md +0 -141
  343. package/docs/guides/ecosystem/render.md +0 -79
  344. package/docs/guides/install/add-git.md +0 -36
  345. package/docs/guides/test/spy-on.md +0 -46
  346. package/docs/install/index.md +0 -248
  347. package/docs/installation.md +0 -327
  348. package/docs/project/asan.md +0 -124
  349. package/docs/project/internals/build-process-for-ci.md +0 -75
  350. package/docs/project/licensing.md +0 -73
  351. package/docs/project/roadmap.md +0 -87
  352. package/docs/quickstart.md +0 -157
  353. package/docs/runtime/bun-apis.md +0 -207
  354. package/docs/runtime/env.md +0 -253
  355. package/docs/runtime/index.md +0 -312
  356. package/docs/runtime/jsx.md +0 -385
  357. package/docs/runtime/loaders.md +0 -130
  358. package/docs/runtime/plugins.md +0 -561
  359. package/docs/runtime/typescript.md +0 -139
  360. package/docs/runtime/web-apis.md +0 -128
  361. package/docs/test/configuration.md +0 -154
  362. package/docs/test/coverage.md +0 -142
  363. package/docs/test/dom.md +0 -75
  364. package/docs/test/examples/concurrent-test-glob.md +0 -132
  365. package/docs/test/hot.md +0 -15
  366. package/docs/test/lifecycle.md +0 -81
  367. package/docs/test/mocks.md +0 -313
  368. package/docs/test/runtime-behavior.md +0 -95
  369. package/docs/test/snapshots.md +0 -68
  370. package/docs/test/writing.md +0 -825
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Use Drizzle ORM with Bun
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
- $ bun init -y
13
- $ bun add drizzle-orm
14
- $ bun add -D drizzle-kit
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#db.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#index.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
- $ bun run index.ts
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#schema.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
- $ bunx drizzle-kit generate --dialect sqlite --schema ./schema.ts
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#migrate.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
- $ bun run migrate.ts
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#seed.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
- $ bun run seed.ts
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#index.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
- name: Use EdgeDB with Bun
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
- {% codetabs %}
13
+ <CodeGroup>
12
14
 
13
- ```sh#Linux/macOS
14
- $ curl --proto '=https' --tlsv1.2 -sSf https://sh.edgedb.com | sh
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#Windows
18
- $ iwr https://ps1.edgedb.com -useb | iex
19
+ ```sh Windows terminal icon="windows"
20
+ iwr https://ps1.edgedb.com -useb | iex
19
21
  ```
20
22
 
21
- {% /codetabs %}
23
+ </CodeGroup>
22
24
 
23
25
  ---
24
26
 
25
27
  Use `bun init` to create a fresh project.
26
28
 
27
- ```sh
28
- $ mkdir my-edgedb-app
29
- $ cd my-edgedb-app
30
- $ bun init -y
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
- $ edgedb project init
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
- Then run `\quit` to exit the REPL.
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
- ```txt
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
- $ edgedb migration create
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
- $ edgedb migrate
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
- $ bun add edgedb
116
- $ bun add -D @edgedb/generate
117
- $ touch seed.ts
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
- $ bun run seed.ts
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
- $ bunx @edgedb/generate edgeql-js
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
- $ bun run index.ts
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
- name: Build an HTTP server using Elysia and Bun
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
- $ bun create elysia myapp
9
- $ cd myapp
10
- $ bun run dev
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#server.ts
18
- import { Elysia } from 'elysia'
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
- name: Build an HTTP server using Express and Bun
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
- {% callout %}
8
- Refer to the [Runtime > Node.js APIs](https://bun.com/docs/runtime/nodejs-apis#node-http) page for more detailed compatibility information.
9
- {% /callout %}
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
- $ bun add express
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#server.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
- $ bun server.ts
41
+ ```sh terminal icon="terminal"
42
+ bun server.ts
40
43
  ```
@@ -1,10 +1,12 @@
1
1
  ---
2
- name: Build an HTTP server using Hono and Bun
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
- $ bun create hono myapp
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
- $ cd myapp
26
- $ bun install
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
- $ bun run dev
41
+ ```sh terminal icon="terminal"
42
+ bun run dev
35
43
  ```
36
44
 
37
45
  ---
@@ -1,5 +1,7 @@
1
1
  ---
2
- name: Read and write data to MongoDB using Mongoose and Bun
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
- $ mkdir mongoose-app
13
- $ cd mongoose-app
14
- $ bun init
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
- $ bun add mongoose
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#schema.ts
30
- import * as mongoose from 'mongoose';
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
- name: {type: String, required: true},
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('Animal', animalSchema);
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#index.ts
55
- import * as mongoose from 'mongoose';
56
- import {Animal} from './schema';
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('mongodb://127.0.0.1:27017/mongoose-app');
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
- name: 'Cow',
64
- sound: 'Moo',
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
- $ bun run index.ts
82
+ ```bash terminal icon="terminal"
83
+ bun run index.ts
84
+ ```
85
+
86
+ ```txt
82
87
  Moo!
83
88
  ```
84
89