@depup/bun-types 1.3.11-depup.0

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 (361) hide show
  1. package/CLAUDE.md +105 -0
  2. package/README.md +25 -0
  3. package/bun.d.ts +8712 -0
  4. package/bun.ns.d.ts +5 -0
  5. package/bundle.d.ts +74 -0
  6. package/changes.json +5 -0
  7. package/deprecated.d.ts +184 -0
  8. package/devserver.d.ts +187 -0
  9. package/docs/README.md +28 -0
  10. package/docs/bundler/bytecode.mdx +447 -0
  11. package/docs/bundler/css.mdx +1024 -0
  12. package/docs/bundler/esbuild.mdx +304 -0
  13. package/docs/bundler/executables.mdx +1318 -0
  14. package/docs/bundler/fullstack.mdx +1086 -0
  15. package/docs/bundler/hot-reloading.mdx +229 -0
  16. package/docs/bundler/html-static.mdx +498 -0
  17. package/docs/bundler/index.mdx +1840 -0
  18. package/docs/bundler/loaders.mdx +451 -0
  19. package/docs/bundler/macros.mdx +328 -0
  20. package/docs/bundler/minifier.mdx +1286 -0
  21. package/docs/bundler/plugins.mdx +477 -0
  22. package/docs/bundler/standalone-html.mdx +314 -0
  23. package/docs/feedback.mdx +75 -0
  24. package/docs/guides/binary/arraybuffer-to-array.mdx +29 -0
  25. package/docs/guides/binary/arraybuffer-to-blob.mdx +26 -0
  26. package/docs/guides/binary/arraybuffer-to-buffer.mdx +27 -0
  27. package/docs/guides/binary/arraybuffer-to-string.mdx +17 -0
  28. package/docs/guides/binary/arraybuffer-to-typedarray.mdx +41 -0
  29. package/docs/guides/binary/blob-to-arraybuffer.mdx +16 -0
  30. package/docs/guides/binary/blob-to-dataview.mdx +16 -0
  31. package/docs/guides/binary/blob-to-stream.mdx +16 -0
  32. package/docs/guides/binary/blob-to-string.mdx +17 -0
  33. package/docs/guides/binary/blob-to-typedarray.mdx +16 -0
  34. package/docs/guides/binary/buffer-to-arraybuffer.mdx +16 -0
  35. package/docs/guides/binary/buffer-to-blob.mdx +16 -0
  36. package/docs/guides/binary/buffer-to-readablestream.mdx +43 -0
  37. package/docs/guides/binary/buffer-to-string.mdx +27 -0
  38. package/docs/guides/binary/buffer-to-typedarray.mdx +16 -0
  39. package/docs/guides/binary/dataview-to-string.mdx +17 -0
  40. package/docs/guides/binary/typedarray-to-arraybuffer.mdx +27 -0
  41. package/docs/guides/binary/typedarray-to-blob.mdx +18 -0
  42. package/docs/guides/binary/typedarray-to-buffer.mdx +16 -0
  43. package/docs/guides/binary/typedarray-to-dataview.mdx +16 -0
  44. package/docs/guides/binary/typedarray-to-readablestream.mdx +43 -0
  45. package/docs/guides/binary/typedarray-to-string.mdx +18 -0
  46. package/docs/guides/deployment/aws-lambda.mdx +204 -0
  47. package/docs/guides/deployment/digital-ocean.mdx +161 -0
  48. package/docs/guides/deployment/google-cloud-run.mdx +194 -0
  49. package/docs/guides/deployment/railway.mdx +145 -0
  50. package/docs/guides/deployment/render.mdx +82 -0
  51. package/docs/guides/deployment/vercel.mdx +97 -0
  52. package/docs/guides/ecosystem/astro.mdx +82 -0
  53. package/docs/guides/ecosystem/discordjs.mdx +80 -0
  54. package/docs/guides/ecosystem/docker.mdx +151 -0
  55. package/docs/guides/ecosystem/drizzle.mdx +195 -0
  56. package/docs/guides/ecosystem/elysia.mdx +31 -0
  57. package/docs/guides/ecosystem/express.mdx +43 -0
  58. package/docs/guides/ecosystem/gel.mdx +261 -0
  59. package/docs/guides/ecosystem/hono.mdx +47 -0
  60. package/docs/guides/ecosystem/mongoose.mdx +92 -0
  61. package/docs/guides/ecosystem/neon-drizzle.mdx +234 -0
  62. package/docs/guides/ecosystem/neon-serverless-postgres.mdx +60 -0
  63. package/docs/guides/ecosystem/nextjs.mdx +103 -0
  64. package/docs/guides/ecosystem/nuxt.mdx +96 -0
  65. package/docs/guides/ecosystem/pm2.mdx +55 -0
  66. package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
  67. package/docs/guides/ecosystem/prisma.mdx +164 -0
  68. package/docs/guides/ecosystem/qwik.mdx +114 -0
  69. package/docs/guides/ecosystem/react.mdx +52 -0
  70. package/docs/guides/ecosystem/remix.mdx +97 -0
  71. package/docs/guides/ecosystem/sentry.mdx +54 -0
  72. package/docs/guides/ecosystem/solidstart.mdx +62 -0
  73. package/docs/guides/ecosystem/ssr-react.mdx +49 -0
  74. package/docs/guides/ecosystem/stric.mdx +54 -0
  75. package/docs/guides/ecosystem/sveltekit.mdx +138 -0
  76. package/docs/guides/ecosystem/systemd.mdx +114 -0
  77. package/docs/guides/ecosystem/tanstack-start.mdx +791 -0
  78. package/docs/guides/ecosystem/upstash.mdx +87 -0
  79. package/docs/guides/ecosystem/vite.mdx +77 -0
  80. package/docs/guides/html-rewriter/extract-links.mdx +71 -0
  81. package/docs/guides/html-rewriter/extract-social-meta.mdx +97 -0
  82. package/docs/guides/http/cluster.mdx +69 -0
  83. package/docs/guides/http/fetch-unix.mdx +35 -0
  84. package/docs/guides/http/fetch.mdx +26 -0
  85. package/docs/guides/http/file-uploads.mdx +97 -0
  86. package/docs/guides/http/hot.mdx +28 -0
  87. package/docs/guides/http/proxy.mdx +50 -0
  88. package/docs/guides/http/server.mdx +48 -0
  89. package/docs/guides/http/simple.mdx +20 -0
  90. package/docs/guides/http/sse.mdx +91 -0
  91. package/docs/guides/http/stream-file.mdx +50 -0
  92. package/docs/guides/http/stream-iterator.mdx +49 -0
  93. package/docs/guides/http/stream-node-streams-in-bun.mdx +22 -0
  94. package/docs/guides/http/tls.mdx +32 -0
  95. package/docs/guides/index.mdx +10 -0
  96. package/docs/guides/install/add-dev.mdx +28 -0
  97. package/docs/guides/install/add-git.mdx +40 -0
  98. package/docs/guides/install/add-optional.mdx +27 -0
  99. package/docs/guides/install/add-peer.mdx +45 -0
  100. package/docs/guides/install/add-tarball.mdx +35 -0
  101. package/docs/guides/install/add.mdx +44 -0
  102. package/docs/guides/install/azure-artifacts.mdx +76 -0
  103. package/docs/guides/install/cicd.mdx +43 -0
  104. package/docs/guides/install/custom-registry.mdx +32 -0
  105. package/docs/guides/install/from-npm-install-to-bun-install.mdx +230 -0
  106. package/docs/guides/install/git-diff-bun-lockfile.mdx +48 -0
  107. package/docs/guides/install/jfrog-artifactory.mdx +28 -0
  108. package/docs/guides/install/npm-alias.mdx +25 -0
  109. package/docs/guides/install/registry-scope.mdx +40 -0
  110. package/docs/guides/install/trusted.mdx +52 -0
  111. package/docs/guides/install/workspaces.mdx +70 -0
  112. package/docs/guides/install/yarnlock.mdx +51 -0
  113. package/docs/guides/process/argv.mdx +66 -0
  114. package/docs/guides/process/ctrl-c.mdx +18 -0
  115. package/docs/guides/process/ipc.mdx +69 -0
  116. package/docs/guides/process/nanoseconds.mdx +15 -0
  117. package/docs/guides/process/os-signals.mdx +31 -0
  118. package/docs/guides/process/spawn-stderr.mdx +34 -0
  119. package/docs/guides/process/spawn-stdout.mdx +28 -0
  120. package/docs/guides/process/spawn.mdx +43 -0
  121. package/docs/guides/process/stdin.mdx +62 -0
  122. package/docs/guides/read-file/arraybuffer.mdx +30 -0
  123. package/docs/guides/read-file/buffer.mdx +21 -0
  124. package/docs/guides/read-file/exists.mdx +18 -0
  125. package/docs/guides/read-file/json.mdx +19 -0
  126. package/docs/guides/read-file/mime.mdx +22 -0
  127. package/docs/guides/read-file/stream.mdx +28 -0
  128. package/docs/guides/read-file/string.mdx +24 -0
  129. package/docs/guides/read-file/uint8array.mdx +23 -0
  130. package/docs/guides/read-file/watch.mdx +66 -0
  131. package/docs/guides/runtime/build-time-constants.mdx +295 -0
  132. package/docs/guides/runtime/cicd.mdx +45 -0
  133. package/docs/guides/runtime/codesign-macos-executable.mdx +61 -0
  134. package/docs/guides/runtime/define-constant.mdx +149 -0
  135. package/docs/guides/runtime/delete-directory.mdx +39 -0
  136. package/docs/guides/runtime/delete-file.mdx +21 -0
  137. package/docs/guides/runtime/heap-snapshot.mdx +28 -0
  138. package/docs/guides/runtime/import-html.mdx +15 -0
  139. package/docs/guides/runtime/import-json.mdx +46 -0
  140. package/docs/guides/runtime/import-json5.mdx +74 -0
  141. package/docs/guides/runtime/import-toml.mdx +32 -0
  142. package/docs/guides/runtime/import-yaml.mdx +104 -0
  143. package/docs/guides/runtime/read-env.mdx +37 -0
  144. package/docs/guides/runtime/set-env.mdx +51 -0
  145. package/docs/guides/runtime/shell.mdx +42 -0
  146. package/docs/guides/runtime/timezone.mdx +38 -0
  147. package/docs/guides/runtime/tsconfig-paths.mdx +31 -0
  148. package/docs/guides/runtime/typescript.mdx +51 -0
  149. package/docs/guides/runtime/vscode-debugger.mdx +47 -0
  150. package/docs/guides/runtime/web-debugger.mdx +103 -0
  151. package/docs/guides/streams/node-readable-to-arraybuffer.mdx +13 -0
  152. package/docs/guides/streams/node-readable-to-blob.mdx +13 -0
  153. package/docs/guides/streams/node-readable-to-json.mdx +14 -0
  154. package/docs/guides/streams/node-readable-to-string.mdx +14 -0
  155. package/docs/guides/streams/node-readable-to-uint8array.mdx +13 -0
  156. package/docs/guides/streams/to-array.mdx +16 -0
  157. package/docs/guides/streams/to-arraybuffer.mdx +16 -0
  158. package/docs/guides/streams/to-blob.mdx +16 -0
  159. package/docs/guides/streams/to-buffer.mdx +17 -0
  160. package/docs/guides/streams/to-json.mdx +16 -0
  161. package/docs/guides/streams/to-string.mdx +16 -0
  162. package/docs/guides/streams/to-typedarray.mdx +24 -0
  163. package/docs/guides/test/bail.mdx +24 -0
  164. package/docs/guides/test/concurrent-test-glob.mdx +146 -0
  165. package/docs/guides/test/coverage-threshold.mdx +67 -0
  166. package/docs/guides/test/coverage.mdx +49 -0
  167. package/docs/guides/test/happy-dom.mdx +73 -0
  168. package/docs/guides/test/migrate-from-jest.mdx +125 -0
  169. package/docs/guides/test/mock-clock.mdx +50 -0
  170. package/docs/guides/test/mock-functions.mdx +70 -0
  171. package/docs/guides/test/rerun-each.mdx +16 -0
  172. package/docs/guides/test/run-tests.mdx +116 -0
  173. package/docs/guides/test/skip-tests.mdx +43 -0
  174. package/docs/guides/test/snapshot.mdx +102 -0
  175. package/docs/guides/test/spy-on.mdx +49 -0
  176. package/docs/guides/test/svelte-test.mdx +113 -0
  177. package/docs/guides/test/testing-library.mdx +93 -0
  178. package/docs/guides/test/timeout.mdx +17 -0
  179. package/docs/guides/test/todo-tests.mdx +74 -0
  180. package/docs/guides/test/update-snapshots.mdx +49 -0
  181. package/docs/guides/test/watch-mode.mdx +24 -0
  182. package/docs/guides/util/base64.mdx +17 -0
  183. package/docs/guides/util/deep-equals.mdx +41 -0
  184. package/docs/guides/util/deflate.mdx +20 -0
  185. package/docs/guides/util/detect-bun.mdx +28 -0
  186. package/docs/guides/util/entrypoint.mdx +19 -0
  187. package/docs/guides/util/escape-html.mdx +24 -0
  188. package/docs/guides/util/file-url-to-path.mdx +16 -0
  189. package/docs/guides/util/gzip.mdx +20 -0
  190. package/docs/guides/util/hash-a-password.mdx +56 -0
  191. package/docs/guides/util/import-meta-dir.mdx +15 -0
  192. package/docs/guides/util/import-meta-file.mdx +15 -0
  193. package/docs/guides/util/import-meta-path.mdx +15 -0
  194. package/docs/guides/util/javascript-uuid.mdx +25 -0
  195. package/docs/guides/util/main.mdx +43 -0
  196. package/docs/guides/util/path-to-file-url.mdx +16 -0
  197. package/docs/guides/util/sleep.mdx +24 -0
  198. package/docs/guides/util/upgrade.mdx +93 -0
  199. package/docs/guides/util/version.mdx +23 -0
  200. package/docs/guides/util/which-path-to-executable-bin.mdx +17 -0
  201. package/docs/guides/websocket/compression.mdx +33 -0
  202. package/docs/guides/websocket/context.mdx +79 -0
  203. package/docs/guides/websocket/pubsub.mdx +43 -0
  204. package/docs/guides/websocket/simple.mdx +38 -0
  205. package/docs/guides/write-file/append.mdx +54 -0
  206. package/docs/guides/write-file/basic.mdx +46 -0
  207. package/docs/guides/write-file/blob.mdx +30 -0
  208. package/docs/guides/write-file/cat.mdx +19 -0
  209. package/docs/guides/write-file/file-cp.mdx +18 -0
  210. package/docs/guides/write-file/filesink.mdx +54 -0
  211. package/docs/guides/write-file/response.mdx +19 -0
  212. package/docs/guides/write-file/stdout.mdx +23 -0
  213. package/docs/guides/write-file/stream.mdx +19 -0
  214. package/docs/guides/write-file/unlink.mdx +18 -0
  215. package/docs/index.mdx +133 -0
  216. package/docs/installation.mdx +372 -0
  217. package/docs/pm/bunx.mdx +91 -0
  218. package/docs/pm/catalogs.mdx +292 -0
  219. package/docs/pm/cli/add.mdx +179 -0
  220. package/docs/pm/cli/audit.mdx +60 -0
  221. package/docs/pm/cli/info.mdx +70 -0
  222. package/docs/pm/cli/install.mdx +591 -0
  223. package/docs/pm/cli/link.mdx +61 -0
  224. package/docs/pm/cli/outdated.mdx +197 -0
  225. package/docs/pm/cli/patch.mdx +69 -0
  226. package/docs/pm/cli/pm.mdx +323 -0
  227. package/docs/pm/cli/publish.mdx +131 -0
  228. package/docs/pm/cli/remove.mdx +16 -0
  229. package/docs/pm/cli/update.mdx +140 -0
  230. package/docs/pm/cli/why.mdx +84 -0
  231. package/docs/pm/filter.mdx +127 -0
  232. package/docs/pm/global-cache.mdx +72 -0
  233. package/docs/pm/isolated-installs.mdx +220 -0
  234. package/docs/pm/lifecycle.mdx +64 -0
  235. package/docs/pm/lockfile.mdx +64 -0
  236. package/docs/pm/npmrc.mdx +245 -0
  237. package/docs/pm/overrides.mdx +83 -0
  238. package/docs/pm/scopes-registries.mdx +35 -0
  239. package/docs/pm/security-scanner-api.mdx +95 -0
  240. package/docs/pm/workspaces.mdx +115 -0
  241. package/docs/project/benchmarking.mdx +296 -0
  242. package/docs/project/bindgen.mdx +223 -0
  243. package/docs/project/building-windows.mdx +143 -0
  244. package/docs/project/contributing.mdx +366 -0
  245. package/docs/project/feedback.mdx +20 -0
  246. package/docs/project/license.mdx +78 -0
  247. package/docs/project/roadmap.mdx +8 -0
  248. package/docs/quickstart.mdx +251 -0
  249. package/docs/runtime/archive.mdx +452 -0
  250. package/docs/runtime/auto-install.mdx +97 -0
  251. package/docs/runtime/binary-data.mdx +846 -0
  252. package/docs/runtime/bun-apis.mdx +60 -0
  253. package/docs/runtime/bunfig.mdx +765 -0
  254. package/docs/runtime/c-compiler.mdx +204 -0
  255. package/docs/runtime/child-process.mdx +659 -0
  256. package/docs/runtime/color.mdx +267 -0
  257. package/docs/runtime/console.mdx +67 -0
  258. package/docs/runtime/cookies.mdx +454 -0
  259. package/docs/runtime/cron.mdx +358 -0
  260. package/docs/runtime/csrf.mdx +171 -0
  261. package/docs/runtime/debugger.mdx +335 -0
  262. package/docs/runtime/environment-variables.mdx +231 -0
  263. package/docs/runtime/ffi.mdx +567 -0
  264. package/docs/runtime/file-io.mdx +306 -0
  265. package/docs/runtime/file-system-router.mdx +118 -0
  266. package/docs/runtime/file-types.mdx +482 -0
  267. package/docs/runtime/glob.mdx +181 -0
  268. package/docs/runtime/globals.mdx +72 -0
  269. package/docs/runtime/hashing.mdx +315 -0
  270. package/docs/runtime/html-rewriter.mdx +333 -0
  271. package/docs/runtime/http/cookies.mdx +79 -0
  272. package/docs/runtime/http/error-handling.mdx +40 -0
  273. package/docs/runtime/http/metrics.mdx +36 -0
  274. package/docs/runtime/http/routing.mdx +289 -0
  275. package/docs/runtime/http/server.mdx +672 -0
  276. package/docs/runtime/http/tls.mdx +101 -0
  277. package/docs/runtime/http/websockets.mdx +414 -0
  278. package/docs/runtime/index.mdx +223 -0
  279. package/docs/runtime/json5.mdx +271 -0
  280. package/docs/runtime/jsonl.mdx +188 -0
  281. package/docs/runtime/jsx.mdx +115 -0
  282. package/docs/runtime/markdown.mdx +381 -0
  283. package/docs/runtime/module-resolution.mdx +374 -0
  284. package/docs/runtime/networking/dns.mdx +111 -0
  285. package/docs/runtime/networking/fetch.mdx +484 -0
  286. package/docs/runtime/networking/tcp.mdx +239 -0
  287. package/docs/runtime/networking/udp.mdx +180 -0
  288. package/docs/runtime/node-api.mdx +19 -0
  289. package/docs/runtime/nodejs-compat.mdx +468 -0
  290. package/docs/runtime/plugins.mdx +419 -0
  291. package/docs/runtime/redis.mdx +583 -0
  292. package/docs/runtime/repl.mdx +176 -0
  293. package/docs/runtime/s3.mdx +881 -0
  294. package/docs/runtime/secrets.mdx +340 -0
  295. package/docs/runtime/semver.mdx +57 -0
  296. package/docs/runtime/shell.mdx +637 -0
  297. package/docs/runtime/sql.mdx +1404 -0
  298. package/docs/runtime/sqlite.mdx +721 -0
  299. package/docs/runtime/streams.mdx +232 -0
  300. package/docs/runtime/templating/create.mdx +269 -0
  301. package/docs/runtime/templating/init.mdx +58 -0
  302. package/docs/runtime/toml.mdx +238 -0
  303. package/docs/runtime/transpiler.mdx +288 -0
  304. package/docs/runtime/typescript.mdx +58 -0
  305. package/docs/runtime/utils.mdx +1010 -0
  306. package/docs/runtime/watch-mode.mdx +161 -0
  307. package/docs/runtime/web-apis.mdx +29 -0
  308. package/docs/runtime/workers.mdx +314 -0
  309. package/docs/runtime/yaml.mdx +470 -0
  310. package/docs/snippets/cli/add.mdx +166 -0
  311. package/docs/snippets/cli/build.mdx +197 -0
  312. package/docs/snippets/cli/bunx.mdx +49 -0
  313. package/docs/snippets/cli/feedback.mdx +17 -0
  314. package/docs/snippets/cli/init.mdx +84 -0
  315. package/docs/snippets/cli/install.mdx +173 -0
  316. package/docs/snippets/cli/link.mdx +163 -0
  317. package/docs/snippets/cli/outdated.mdx +140 -0
  318. package/docs/snippets/cli/patch.mdx +171 -0
  319. package/docs/snippets/cli/publish.mdx +198 -0
  320. package/docs/snippets/cli/remove.mdx +146 -0
  321. package/docs/snippets/cli/run.mdx +305 -0
  322. package/docs/snippets/cli/test.mdx +105 -0
  323. package/docs/snippets/cli/update.mdx +144 -0
  324. package/docs/test/code-coverage.mdx +409 -0
  325. package/docs/test/configuration.mdx +574 -0
  326. package/docs/test/dates-times.mdx +129 -0
  327. package/docs/test/discovery.mdx +90 -0
  328. package/docs/test/dom.mdx +226 -0
  329. package/docs/test/index.mdx +409 -0
  330. package/docs/test/lifecycle.mdx +366 -0
  331. package/docs/test/mocks.mdx +637 -0
  332. package/docs/test/reporters.mdx +126 -0
  333. package/docs/test/runtime-behavior.mdx +342 -0
  334. package/docs/test/snapshots.mdx +434 -0
  335. package/docs/test/writing-tests.mdx +672 -0
  336. package/docs/typescript.mdx +54 -0
  337. package/extensions.d.ts +40 -0
  338. package/fetch.d.ts +79 -0
  339. package/ffi.d.ts +1154 -0
  340. package/globals.d.ts +2067 -0
  341. package/html-rewriter.d.ts +186 -0
  342. package/index.d.ts +32 -0
  343. package/jsc.d.ts +233 -0
  344. package/jsx.d.ts +11 -0
  345. package/overrides.d.ts +376 -0
  346. package/package.json +53 -0
  347. package/redis.d.ts +3352 -0
  348. package/s3.d.ts +1354 -0
  349. package/security.d.ts +101 -0
  350. package/serve.d.ts +1296 -0
  351. package/shell.d.ts +380 -0
  352. package/sql.d.ts +887 -0
  353. package/sqlite.d.ts +1322 -0
  354. package/test-globals.d.ts +22 -0
  355. package/test.d.ts +2392 -0
  356. package/vendor/expect-type/branding.d.ts +283 -0
  357. package/vendor/expect-type/index.d.ts +1207 -0
  358. package/vendor/expect-type/messages.d.ts +395 -0
  359. package/vendor/expect-type/overloads.d.ts +669 -0
  360. package/vendor/expect-type/utils.d.ts +431 -0
  361. package/wasm.d.ts +193 -0
@@ -0,0 +1,238 @@
1
+ ---
2
+ title: TOML
3
+ description: Use Bun's built-in support for TOML files through both runtime APIs and bundler integration
4
+ ---
5
+
6
+ In Bun, TOML is a first-class citizen alongside JSON, JSON5, and YAML. You can:
7
+
8
+ - Parse TOML strings with `Bun.TOML.parse`
9
+ - `import` & `require` TOML files as modules at runtime (including hot reloading & watch mode support)
10
+ - `import` & `require` TOML files in frontend apps via Bun's bundler
11
+
12
+ ---
13
+
14
+ ## Runtime API
15
+
16
+ ### `Bun.TOML.parse()`
17
+
18
+ Parse a TOML string into a JavaScript object.
19
+
20
+ ```ts
21
+ import { TOML } from "bun";
22
+ const text = `
23
+ name = "my-app"
24
+ version = "1.0.0"
25
+ debug = true
26
+
27
+ [database]
28
+ host = "localhost"
29
+ port = 5432
30
+
31
+ [features]
32
+ tags = ["web", "api"]
33
+ `;
34
+
35
+ const data = TOML.parse(text);
36
+ console.log(data);
37
+ // {
38
+ // name: "my-app",
39
+ // version: "1.0.0",
40
+ // debug: true,
41
+ // database: { host: "localhost", port: 5432 },
42
+ // features: { tags: ["web", "api"] }
43
+ // }
44
+ ```
45
+
46
+ #### Supported TOML Features
47
+
48
+ Bun's TOML parser supports the [TOML v1.0 specification](https://toml.io/en/v1.0.0), including:
49
+
50
+ - **Strings**: basic (`"..."`) and literal (`'...'`), including multi-line
51
+ - **Integers**: decimal, hex (`0x`), octal (`0o`), and binary (`0b`)
52
+ - **Floats**: including `inf` and `nan`
53
+ - **Booleans**: `true` and `false`
54
+ - **Arrays**: including mixed types and nested arrays
55
+ - **Tables**: standard (`[table]`) and inline (`{ key = "value" }`)
56
+ - **Array of tables**: `[[array]]`
57
+ - **Dotted keys**: `a.b.c = "value"`
58
+ - **Comments**: using `#`
59
+
60
+ ```ts
61
+ const data = Bun.TOML.parse(`
62
+ # Application config
63
+ title = "My App"
64
+
65
+ [owner]
66
+ name = "John Doe"
67
+
68
+ [database]
69
+ enabled = true
70
+ ports = [8000, 8001, 8002]
71
+ connection_max = 5000
72
+
73
+ [servers.alpha]
74
+ ip = "10.0.0.1"
75
+ role = "frontend"
76
+
77
+ [servers.beta]
78
+ ip = "10.0.0.2"
79
+ role = "backend"
80
+ `);
81
+ ```
82
+
83
+ #### Error Handling
84
+
85
+ `Bun.TOML.parse()` throws if the TOML is invalid:
86
+
87
+ ```ts
88
+ try {
89
+ Bun.TOML.parse("invalid = = =");
90
+ } catch (error) {
91
+ console.error("Failed to parse TOML:", error.message);
92
+ }
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Module Import
98
+
99
+ ### ES Modules
100
+
101
+ You can import TOML files directly as ES modules. The TOML content is parsed and made available as both default and named exports:
102
+
103
+ ```toml config.toml
104
+ [database]
105
+ host = "localhost"
106
+ port = 5432
107
+ name = "myapp"
108
+
109
+ [redis]
110
+ host = "localhost"
111
+ port = 6379
112
+
113
+ [features]
114
+ auth = true
115
+ rateLimit = true
116
+ analytics = false
117
+ ```
118
+
119
+ #### Default Import
120
+
121
+ ```ts app.ts icon="/icons/typescript.svg"
122
+ import config from "./config.toml";
123
+
124
+ console.log(config.database.host); // "localhost"
125
+ console.log(config.redis.port); // 6379
126
+ ```
127
+
128
+ #### Named Imports
129
+
130
+ You can destructure top-level TOML tables as named imports:
131
+
132
+ ```ts app.ts icon="/icons/typescript.svg"
133
+ import { database, redis, features } from "./config.toml";
134
+
135
+ console.log(database.host); // "localhost"
136
+ console.log(redis.port); // 6379
137
+ console.log(features.auth); // true
138
+ ```
139
+
140
+ Or combine both:
141
+
142
+ ```ts app.ts icon="/icons/typescript.svg"
143
+ import config, { database, features } from "./config.toml";
144
+
145
+ // Use the full config object
146
+ console.log(config);
147
+
148
+ // Or use specific parts
149
+ if (features.rateLimit) {
150
+ setupRateLimiting(database);
151
+ }
152
+ ```
153
+
154
+ #### Import Attributes
155
+
156
+ You can also use import attributes to load any file as TOML:
157
+
158
+ ```ts app.ts icon="/icons/typescript.svg"
159
+ import myConfig from "./my.config" with { type: "toml" };
160
+ ```
161
+
162
+ ### CommonJS
163
+
164
+ TOML files can also be required in CommonJS:
165
+
166
+ ```ts app.ts icon="/icons/typescript.svg"
167
+ const config = require("./config.toml");
168
+ console.log(config.database.name); // "myapp"
169
+
170
+ // Destructuring also works
171
+ const { database, redis } = require("./config.toml");
172
+ console.log(database.port); // 5432
173
+ ```
174
+
175
+ ---
176
+
177
+ ## Hot Reloading with TOML
178
+
179
+ When you run your application with `bun --hot`, changes to TOML files are automatically detected and reloaded without restarting:
180
+
181
+ ```toml config.toml
182
+ [server]
183
+ port = 3000
184
+ host = "localhost"
185
+
186
+ [features]
187
+ debug = true
188
+ verbose = false
189
+ ```
190
+
191
+ ```ts server.ts icon="/icons/typescript.svg"
192
+ import { server, features } from "./config.toml";
193
+
194
+ console.log(`Starting server on ${server.host}:${server.port}`);
195
+
196
+ Bun.serve({
197
+ port: server.port,
198
+ hostname: server.host,
199
+ fetch(req) {
200
+ if (features.verbose) {
201
+ console.log(`${req.method} ${req.url}`);
202
+ }
203
+ return new Response("Hello World");
204
+ },
205
+ });
206
+ ```
207
+
208
+ Run with hot reloading:
209
+
210
+ ```bash terminal icon="terminal"
211
+ bun --hot server.ts
212
+ ```
213
+
214
+ Now when you modify `config.toml`, the changes are immediately reflected in your running application.
215
+
216
+ ---
217
+
218
+ ## Bundler Integration
219
+
220
+ When you import TOML files and bundle with Bun, the TOML is parsed at build time and included as a JavaScript module:
221
+
222
+ ```bash terminal icon="terminal"
223
+ bun build app.ts --outdir=dist
224
+ ```
225
+
226
+ This means:
227
+
228
+ - Zero runtime TOML parsing overhead in production
229
+ - Smaller bundle sizes
230
+ - Tree-shaking support for unused properties (named imports)
231
+
232
+ ### Dynamic Imports
233
+
234
+ TOML files can be dynamically imported:
235
+
236
+ ```ts
237
+ const config = await import("./config.toml");
238
+ ```
@@ -0,0 +1,288 @@
1
+ ---
2
+ title: Transpiler
3
+ description: Use Bun's transpiler to transpile JavaScript and TypeScript code
4
+ ---
5
+
6
+ Bun exposes its internal transpiler via the `Bun.Transpiler` class. To create an instance of Bun's transpiler:
7
+
8
+ ```ts
9
+ const transpiler = new Bun.Transpiler({
10
+ loader: "tsx", // "js | "jsx" | "ts" | "tsx"
11
+ });
12
+ ```
13
+
14
+ ---
15
+
16
+ ## `.transformSync()`
17
+
18
+ Transpile code synchronously with the `.transformSync()` method. Modules are not resolved and the code is not executed. The result is a string of vanilla JavaScript code.
19
+
20
+ <CodeGroup>
21
+ ```ts transpile.ts icon="/icons/typescript.svg"
22
+ const transpiler = new Bun.Transpiler({
23
+ loader: 'tsx',
24
+ });
25
+
26
+ const code = `
27
+ import * as whatever from "./whatever.ts"
28
+ export function Home(props: {title: string}){
29
+ return <p>{props.title}</p>;
30
+ }`;
31
+
32
+ const result = transpiler.transformSync(code);
33
+
34
+ ````
35
+
36
+ ```ts output
37
+ import { __require as require } from "bun:wrap";
38
+ import * as JSX from "react/jsx-dev-runtime";
39
+ var jsx = require(JSX).jsxDEV;
40
+
41
+ export default jsx(
42
+ "div",
43
+ {
44
+ children: "hi!",
45
+ },
46
+ undefined,
47
+ false,
48
+ undefined,
49
+ this,
50
+ );
51
+ ````
52
+
53
+ </CodeGroup>
54
+
55
+ To override the default loader specified in the `new Bun.Transpiler()` constructor, pass a second argument to `.transformSync()`.
56
+
57
+ ```ts
58
+ transpiler.transformSync("<div>hi!</div>", "tsx");
59
+ ```
60
+
61
+ <Accordion title="Nitty gritty">
62
+
63
+ When `.transformSync` is called, the transpiler is run in the same thread as the currently executed code.
64
+
65
+ If a macro is used, it will be run in the same thread as the transpiler, but in a separate event loop from the rest of your application. Currently, globals between macros and regular code are shared, which means it is possible (but not recommended) to share states between macros and regular code. Attempting to use AST nodes outside of a macro is undefined behavior.
66
+
67
+ </Accordion>
68
+
69
+ ---
70
+
71
+ ## `.transform()`
72
+
73
+ The `transform()` method is an async version of `.transformSync()` that returns a `Promise<string>`.
74
+
75
+ ```js
76
+ const transpiler = new Bun.Transpiler({ loader: "jsx" });
77
+ const result = await transpiler.transform("<div>hi!</div>");
78
+ console.log(result);
79
+ ```
80
+
81
+ Unless you're transpiling _many_ large files, you should probably use `Bun.Transpiler.transformSync`. The cost of the threadpool will often take longer than actually transpiling code.
82
+
83
+ ```ts
84
+ await transpiler.transform("<div>hi!</div>", "tsx");
85
+ ```
86
+
87
+ <Accordion title="Nitty gritty">
88
+
89
+ The `.transform()` method runs the transpiler in Bun's worker threadpool, so if you run it 100 times, it will run it across `Math.floor($cpu_count * 0.8)` threads, without blocking the main JavaScript thread.
90
+
91
+ If your code uses a macro, it will potentially spawn a new copy of Bun's JavaScript runtime environment in that new thread.
92
+
93
+ </Accordion>
94
+
95
+ ## `.scan()`
96
+
97
+ The `Transpiler` instance can also scan some source code and return a list of its imports and exports, plus additional metadata about each one. [Type-only](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) imports and exports are ignored.
98
+
99
+ <CodeGroup>
100
+
101
+ ```ts example.ts icon="/icons/typescript.svg"
102
+ const transpiler = new Bun.Transpiler({
103
+ loader: "tsx",
104
+ });
105
+
106
+ const code = `
107
+ import React from 'react';
108
+ import type {ReactNode} from 'react';
109
+ const val = require('./cjs.js')
110
+ import('./loader');
111
+
112
+ export const name = "hello";
113
+ `;
114
+
115
+ const result = transpiler.scan(code);
116
+ ```
117
+
118
+ ```json output
119
+ {
120
+ "exports": ["name"],
121
+ "imports": [
122
+ {
123
+ "kind": "import-statement",
124
+ "path": "react"
125
+ },
126
+ {
127
+ "kind": "import-statement",
128
+ "path": "remix"
129
+ },
130
+ {
131
+ "kind": "dynamic-import",
132
+ "path": "./loader"
133
+ }
134
+ ]
135
+ }
136
+ ```
137
+
138
+ </CodeGroup>
139
+
140
+ Each import in the `imports` array has a `path` and `kind`. Bun categories imports into the following kinds:
141
+
142
+ - `import-statement`: `import React from 'react'`
143
+ - `require-call`: `const val = require('./cjs.js')`
144
+ - `require-resolve`: `require.resolve('./cjs.js')`
145
+ - `dynamic-import`: `import('./loader')`
146
+ - `import-rule`: `@import 'foo.css'`
147
+ - `url-token`: `url('./foo.png')`
148
+
149
+ ---
150
+
151
+ ## `.scanImports()`
152
+
153
+ For performance-sensitive code, you can use the `.scanImports()` method to get a list of imports. It's faster than `.scan()` (especially for large files) but marginally less accurate due to some performance optimizations.
154
+
155
+ <CodeGroup>
156
+
157
+ ```ts example.ts icon="/icons/typescript.svg"
158
+ const transpiler = new Bun.Transpiler({
159
+ loader: "tsx",
160
+ });
161
+
162
+ const code = `
163
+ import React from 'react';
164
+ import type {ReactNode} from 'react';
165
+ const val = require('./cjs.js')
166
+ import('./loader');
167
+
168
+ export const name = "hello";
169
+ `;
170
+
171
+ const result = transpiler.scanImports(code);
172
+ ```
173
+
174
+ ```json results icon="file-json"
175
+ [
176
+ {
177
+ "kind": "import-statement",
178
+ "path": "react"
179
+ },
180
+ {
181
+ "kind": "require-call",
182
+ "path": "./cjs.js"
183
+ },
184
+ {
185
+ "kind": "dynamic-import",
186
+ "path": "./loader"
187
+ }
188
+ ]
189
+ ```
190
+
191
+ </CodeGroup>
192
+
193
+ ---
194
+
195
+ ## Reference
196
+
197
+ ```ts See Typescript Definitions expandable
198
+ type Loader = "jsx" | "js" | "ts" | "tsx";
199
+
200
+ interface TranspilerOptions {
201
+ // Replace key with value. Value must be a JSON string.
202
+ // { "process.env.NODE_ENV": "\"production\"" }
203
+ define?: Record<string, string>,
204
+
205
+ // Default loader for this transpiler
206
+ loader?: Loader,
207
+
208
+ // Default platform to target
209
+ // This affects how import and/or require is used
210
+ target?: "browser" | "bun" | "node",
211
+
212
+ // Specify a tsconfig.json file as stringified JSON or an object
213
+ // Use this to set a custom JSX factory, fragment, or import source
214
+ // For example, if you want to use Preact instead of React. Or if you want to use Emotion.
215
+ tsconfig?: string | TSConfig,
216
+
217
+ // Replace imports with macros
218
+ macro?: MacroMap,
219
+
220
+ // Specify a set of exports to eliminate
221
+ // Or rename certain exports
222
+ exports?: {
223
+ eliminate?: string[];
224
+ replace?: Record<string, string>;
225
+ },
226
+
227
+ // Whether to remove unused imports from transpiled file
228
+ // Default: false
229
+ trimUnusedImports?: boolean,
230
+
231
+ // Whether to enable a set of JSX optimizations
232
+ // jsxOptimizationInline ...,
233
+
234
+ // Experimental whitespace minification
235
+ minifyWhitespace?: boolean,
236
+
237
+ // Whether to inline constant values
238
+ // Typically improves performance and decreases bundle size
239
+ // Default: true
240
+ inline?: boolean,
241
+ }
242
+
243
+ // Map import paths to macros
244
+ interface MacroMap {
245
+ // {
246
+ // "react-relay": {
247
+ // "graphql": "bun-macro-relay/bun-macro-relay.tsx"
248
+ // }
249
+ // }
250
+ [packagePath: string]: {
251
+ [importItemName: string]: string,
252
+ },
253
+ }
254
+
255
+ class Bun.Transpiler {
256
+ constructor(options: TranspilerOptions)
257
+
258
+ transform(code: string, loader?: Loader): Promise<string>
259
+ transformSync(code: string, loader?: Loader): string
260
+
261
+ scan(code: string): {exports: string[], imports: Import}
262
+ scanImports(code: string): Import[]
263
+ }
264
+
265
+ type Import = {
266
+ path: string,
267
+ kind:
268
+ // import foo from 'bar'; in JavaScript
269
+ | "import-statement"
270
+ // require("foo") in JavaScript
271
+ | "require-call"
272
+ // require.resolve("foo") in JavaScript
273
+ | "require-resolve"
274
+ // Dynamic import() in JavaScript
275
+ | "dynamic-import"
276
+ // @import() in CSS
277
+ | "import-rule"
278
+ // url() in CSS
279
+ | "url-token"
280
+ // The import was injected by Bun
281
+ | "internal"
282
+ // Entry point (not common)
283
+ | "entry-point-build"
284
+ | "entry-point-run"
285
+ }
286
+
287
+ const transpiler = new Bun.Transpiler({ loader: "jsx" });
288
+ ```
@@ -0,0 +1,58 @@
1
+ ---
2
+ title: "TypeScript"
3
+ description: "Using TypeScript with Bun, including type definitions and compiler options"
4
+ ---
5
+
6
+ To install the TypeScript definitions for Bun's built-in APIs, install `@types/bun`.
7
+
8
+ ```sh
9
+ bun add -d @types/bun # dev dependency
10
+ ```
11
+
12
+ At this point, you should be able to reference the `Bun` global in your TypeScript files without seeing errors in your editor.
13
+
14
+ ```ts
15
+ console.log(Bun.version);
16
+ ```
17
+
18
+ ## Suggested `compilerOptions`
19
+
20
+ Bun supports things like top-level await, JSX, and extensioned `.ts` imports, which TypeScript doesn't allow by default. Below is a set of recommended `compilerOptions` for a Bun project, so you can use these features without seeing compiler warnings from TypeScript.
21
+
22
+ ```jsonc
23
+ {
24
+ "compilerOptions": {
25
+ // Environment setup & latest features
26
+ "lib": ["ESNext"],
27
+ "target": "ESNext",
28
+ "module": "Preserve",
29
+ "moduleDetection": "force",
30
+ "jsx": "react-jsx",
31
+ "allowJs": true,
32
+
33
+ // Bundler mode
34
+ "moduleResolution": "bundler",
35
+ "allowImportingTsExtensions": true,
36
+ "verbatimModuleSyntax": true,
37
+ "noEmit": true,
38
+
39
+ // Best practices
40
+ "strict": true,
41
+ "skipLibCheck": true,
42
+ "noFallthroughCasesInSwitch": true,
43
+ "noUncheckedIndexedAccess": true,
44
+ "noImplicitOverride": true,
45
+
46
+ // Some stricter flags (disabled by default)
47
+ "noUnusedLocals": false,
48
+ "noUnusedParameters": false,
49
+ "noPropertyAccessFromIndexSignature": false,
50
+ },
51
+ }
52
+ ```
53
+
54
+ If you run `bun init` in a new directory, this `tsconfig.json` will be generated for you. (The stricter flags are disabled by default.)
55
+
56
+ ```sh
57
+ bun init
58
+ ```