bun-types 1.3.2-canary.20251104T140728 → 1.3.2-canary.20251106T140813

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 (312) hide show
  1. package/bun.d.ts +4 -4
  2. package/docs/README.md +28 -0
  3. package/globals.d.ts +0 -1
  4. package/overrides.d.ts +45 -15
  5. package/package.json +1 -1
  6. package/test.d.ts +1 -1
  7. package/docs/api/binary-data.md +0 -1038
  8. package/docs/api/cc.md +0 -197
  9. package/docs/api/color.md +0 -262
  10. package/docs/api/console.md +0 -57
  11. package/docs/api/cookie.md +0 -449
  12. package/docs/api/dns.md +0 -110
  13. package/docs/api/fetch.md +0 -463
  14. package/docs/api/ffi.md +0 -557
  15. package/docs/api/file-io.md +0 -366
  16. package/docs/api/file-system-router.md +0 -112
  17. package/docs/api/file.md +0 -19
  18. package/docs/api/glob.md +0 -178
  19. package/docs/api/globals.md +0 -387
  20. package/docs/api/hashing.md +0 -319
  21. package/docs/api/html-rewriter.md +0 -334
  22. package/docs/api/http.md +0 -1408
  23. package/docs/api/import-meta.md +0 -69
  24. package/docs/api/node-api.md +0 -14
  25. package/docs/api/redis.md +0 -597
  26. package/docs/api/s3.md +0 -850
  27. package/docs/api/secrets.md +0 -319
  28. package/docs/api/semver.md +0 -52
  29. package/docs/api/spawn.md +0 -582
  30. package/docs/api/sql.md +0 -1374
  31. package/docs/api/sqlite.md +0 -694
  32. package/docs/api/streams.md +0 -230
  33. package/docs/api/tcp.md +0 -221
  34. package/docs/api/transpiler.md +0 -276
  35. package/docs/api/udp.md +0 -123
  36. package/docs/api/utils.md +0 -891
  37. package/docs/api/websockets.md +0 -573
  38. package/docs/api/workers.md +0 -322
  39. package/docs/api/yaml.md +0 -668
  40. package/docs/benchmarks.md +0 -120
  41. package/docs/bun-flavored-toml.md +0 -42
  42. package/docs/bundler/css.md +0 -1028
  43. package/docs/bundler/css_modules.md +0 -145
  44. package/docs/bundler/executables.md +0 -626
  45. package/docs/bundler/fullstack.md +0 -418
  46. package/docs/bundler/hmr.md +0 -234
  47. package/docs/bundler/html.md +0 -349
  48. package/docs/bundler/index.md +0 -1735
  49. package/docs/bundler/intro.md +0 -75
  50. package/docs/bundler/loaders.md +0 -410
  51. package/docs/bundler/macros.md +0 -329
  52. package/docs/bundler/plugins.md +0 -449
  53. package/docs/bundler/vs-esbuild.md +0 -1127
  54. package/docs/cli/add.md +0 -173
  55. package/docs/cli/bun-completions.md +0 -3
  56. package/docs/cli/bun-create.md +0 -338
  57. package/docs/cli/bun-install.md +0 -349
  58. package/docs/cli/bun-upgrade.md +0 -39
  59. package/docs/cli/bunx.md +0 -89
  60. package/docs/cli/filter.md +0 -90
  61. package/docs/cli/info.md +0 -65
  62. package/docs/cli/init.md +0 -85
  63. package/docs/cli/install.md +0 -344
  64. package/docs/cli/link.md +0 -40
  65. package/docs/cli/outdated.md +0 -90
  66. package/docs/cli/patch-commit.md +0 -11
  67. package/docs/cli/pm.md +0 -285
  68. package/docs/cli/publish.md +0 -120
  69. package/docs/cli/remove.md +0 -7
  70. package/docs/cli/run.md +0 -261
  71. package/docs/cli/test.md +0 -397
  72. package/docs/cli/unlink.md +0 -9
  73. package/docs/cli/update.md +0 -129
  74. package/docs/cli/why.md +0 -67
  75. package/docs/contributing/upgrading-webkit.md +0 -57
  76. package/docs/ecosystem/elysia.md +0 -24
  77. package/docs/ecosystem/express.md +0 -37
  78. package/docs/ecosystem/hono.md +0 -18
  79. package/docs/ecosystem/react.md +0 -65
  80. package/docs/ecosystem/stric.md +0 -38
  81. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  82. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  83. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  84. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  85. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  86. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  87. package/docs/guides/binary/blob-to-dataview.md +0 -14
  88. package/docs/guides/binary/blob-to-stream.md +0 -14
  89. package/docs/guides/binary/blob-to-string.md +0 -15
  90. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  91. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  92. package/docs/guides/binary/buffer-to-blob.md +0 -14
  93. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  94. package/docs/guides/binary/buffer-to-string.md +0 -25
  95. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  96. package/docs/guides/binary/dataview-to-string.md +0 -15
  97. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  98. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  99. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  100. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  101. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  102. package/docs/guides/binary/typedarray-to-string.md +0 -16
  103. package/docs/guides/deployment/railway.md +0 -157
  104. package/docs/guides/ecosystem/astro.md +0 -72
  105. package/docs/guides/ecosystem/discordjs.md +0 -77
  106. package/docs/guides/ecosystem/docker.md +0 -140
  107. package/docs/guides/ecosystem/drizzle.md +0 -185
  108. package/docs/guides/ecosystem/edgedb.md +0 -228
  109. package/docs/guides/ecosystem/elysia.md +0 -31
  110. package/docs/guides/ecosystem/express.md +0 -40
  111. package/docs/guides/ecosystem/hono.md +0 -39
  112. package/docs/guides/ecosystem/mongoose.md +0 -87
  113. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  114. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  115. package/docs/guides/ecosystem/nextjs.md +0 -49
  116. package/docs/guides/ecosystem/nuxt.md +0 -56
  117. package/docs/guides/ecosystem/pm2.md +0 -57
  118. package/docs/guides/ecosystem/prisma.md +0 -141
  119. package/docs/guides/ecosystem/qwik.md +0 -107
  120. package/docs/guides/ecosystem/react.md +0 -50
  121. package/docs/guides/ecosystem/remix.md +0 -78
  122. package/docs/guides/ecosystem/render.md +0 -79
  123. package/docs/guides/ecosystem/sentry.md +0 -52
  124. package/docs/guides/ecosystem/solidstart.md +0 -58
  125. package/docs/guides/ecosystem/ssr-react.md +0 -51
  126. package/docs/guides/ecosystem/stric.md +0 -55
  127. package/docs/guides/ecosystem/sveltekit.md +0 -125
  128. package/docs/guides/ecosystem/systemd.md +0 -113
  129. package/docs/guides/ecosystem/vite.md +0 -71
  130. package/docs/guides/html-rewriter/extract-links.md +0 -68
  131. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  132. package/docs/guides/http/cluster.md +0 -66
  133. package/docs/guides/http/fetch-unix.md +0 -33
  134. package/docs/guides/http/fetch.md +0 -24
  135. package/docs/guides/http/file-uploads.md +0 -94
  136. package/docs/guides/http/hot.md +0 -26
  137. package/docs/guides/http/proxy.md +0 -24
  138. package/docs/guides/http/server.md +0 -46
  139. package/docs/guides/http/simple.md +0 -18
  140. package/docs/guides/http/stream-file.md +0 -48
  141. package/docs/guides/http/stream-iterator.md +0 -47
  142. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  143. package/docs/guides/http/tls.md +0 -30
  144. package/docs/guides/install/add-dev.md +0 -26
  145. package/docs/guides/install/add-git.md +0 -36
  146. package/docs/guides/install/add-optional.md +0 -25
  147. package/docs/guides/install/add-peer.md +0 -43
  148. package/docs/guides/install/add-tarball.md +0 -33
  149. package/docs/guides/install/add.md +0 -42
  150. package/docs/guides/install/azure-artifacts.md +0 -73
  151. package/docs/guides/install/cicd.md +0 -41
  152. package/docs/guides/install/custom-registry.md +0 -30
  153. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  154. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  155. package/docs/guides/install/jfrog-artifactory.md +0 -28
  156. package/docs/guides/install/npm-alias.md +0 -23
  157. package/docs/guides/install/registry-scope.md +0 -38
  158. package/docs/guides/install/trusted.md +0 -46
  159. package/docs/guides/install/workspaces.md +0 -70
  160. package/docs/guides/install/yarnlock.md +0 -44
  161. package/docs/guides/process/argv.md +0 -58
  162. package/docs/guides/process/ctrl-c.md +0 -16
  163. package/docs/guides/process/ipc.md +0 -66
  164. package/docs/guides/process/nanoseconds.md +0 -13
  165. package/docs/guides/process/os-signals.md +0 -39
  166. package/docs/guides/process/spawn-stderr.md +0 -31
  167. package/docs/guides/process/spawn-stdout.md +0 -26
  168. package/docs/guides/process/spawn.md +0 -41
  169. package/docs/guides/process/stdin.md +0 -54
  170. package/docs/guides/read-file/arraybuffer.md +0 -28
  171. package/docs/guides/read-file/buffer.md +0 -19
  172. package/docs/guides/read-file/exists.md +0 -16
  173. package/docs/guides/read-file/json.md +0 -17
  174. package/docs/guides/read-file/mime.md +0 -20
  175. package/docs/guides/read-file/stream.md +0 -26
  176. package/docs/guides/read-file/string.md +0 -22
  177. package/docs/guides/read-file/uint8array.md +0 -21
  178. package/docs/guides/read-file/watch.md +0 -68
  179. package/docs/guides/runtime/build-time-constants.md +0 -293
  180. package/docs/guides/runtime/cicd.md +0 -43
  181. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  182. package/docs/guides/runtime/define-constant.md +0 -145
  183. package/docs/guides/runtime/delete-directory.md +0 -37
  184. package/docs/guides/runtime/delete-file.md +0 -19
  185. package/docs/guides/runtime/heap-snapshot.md +0 -26
  186. package/docs/guides/runtime/import-html.md +0 -15
  187. package/docs/guides/runtime/import-json.md +0 -44
  188. package/docs/guides/runtime/import-toml.md +0 -30
  189. package/docs/guides/runtime/import-yaml.md +0 -102
  190. package/docs/guides/runtime/read-env.md +0 -32
  191. package/docs/guides/runtime/set-env.md +0 -47
  192. package/docs/guides/runtime/shell.md +0 -40
  193. package/docs/guides/runtime/timezone.md +0 -35
  194. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  195. package/docs/guides/runtime/typescript.md +0 -49
  196. package/docs/guides/runtime/vscode-debugger.md +0 -47
  197. package/docs/guides/runtime/web-debugger.md +0 -82
  198. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  199. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  200. package/docs/guides/streams/node-readable-to-json.md +0 -12
  201. package/docs/guides/streams/node-readable-to-string.md +0 -12
  202. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  203. package/docs/guides/streams/to-array.md +0 -14
  204. package/docs/guides/streams/to-arraybuffer.md +0 -14
  205. package/docs/guides/streams/to-blob.md +0 -14
  206. package/docs/guides/streams/to-buffer.md +0 -15
  207. package/docs/guides/streams/to-json.md +0 -14
  208. package/docs/guides/streams/to-string.md +0 -14
  209. package/docs/guides/streams/to-typedarray.md +0 -22
  210. package/docs/guides/test/bail.md +0 -22
  211. package/docs/guides/test/coverage-threshold.md +0 -60
  212. package/docs/guides/test/coverage.md +0 -44
  213. package/docs/guides/test/happy-dom.md +0 -68
  214. package/docs/guides/test/migrate-from-jest.md +0 -143
  215. package/docs/guides/test/mock-clock.md +0 -48
  216. package/docs/guides/test/mock-functions.md +0 -68
  217. package/docs/guides/test/rerun-each.md +0 -14
  218. package/docs/guides/test/run-tests.md +0 -111
  219. package/docs/guides/test/skip-tests.md +0 -39
  220. package/docs/guides/test/snapshot.md +0 -95
  221. package/docs/guides/test/spy-on.md +0 -46
  222. package/docs/guides/test/svelte-test.md +0 -120
  223. package/docs/guides/test/testing-library.md +0 -92
  224. package/docs/guides/test/timeout.md +0 -15
  225. package/docs/guides/test/todo-tests.md +0 -67
  226. package/docs/guides/test/update-snapshots.md +0 -46
  227. package/docs/guides/test/watch-mode.md +0 -19
  228. package/docs/guides/util/base64.md +0 -15
  229. package/docs/guides/util/deep-equals.md +0 -39
  230. package/docs/guides/util/deflate.md +0 -18
  231. package/docs/guides/util/detect-bun.md +0 -23
  232. package/docs/guides/util/entrypoint.md +0 -17
  233. package/docs/guides/util/escape-html.md +0 -22
  234. package/docs/guides/util/file-url-to-path.md +0 -14
  235. package/docs/guides/util/gzip.md +0 -18
  236. package/docs/guides/util/hash-a-password.md +0 -54
  237. package/docs/guides/util/import-meta-dir.md +0 -13
  238. package/docs/guides/util/import-meta-file.md +0 -13
  239. package/docs/guides/util/import-meta-path.md +0 -13
  240. package/docs/guides/util/javascript-uuid.md +0 -23
  241. package/docs/guides/util/main.md +0 -32
  242. package/docs/guides/util/path-to-file-url.md +0 -14
  243. package/docs/guides/util/sleep.md +0 -22
  244. package/docs/guides/util/version.md +0 -21
  245. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  246. package/docs/guides/websocket/compression.md +0 -31
  247. package/docs/guides/websocket/context.md +0 -77
  248. package/docs/guides/websocket/pubsub.md +0 -41
  249. package/docs/guides/websocket/simple.md +0 -33
  250. package/docs/guides/write-file/append.md +0 -52
  251. package/docs/guides/write-file/basic.md +0 -44
  252. package/docs/guides/write-file/blob.md +0 -28
  253. package/docs/guides/write-file/cat.md +0 -17
  254. package/docs/guides/write-file/file-cp.md +0 -16
  255. package/docs/guides/write-file/filesink.md +0 -52
  256. package/docs/guides/write-file/response.md +0 -17
  257. package/docs/guides/write-file/stdout.md +0 -21
  258. package/docs/guides/write-file/stream.md +0 -17
  259. package/docs/guides/write-file/unlink.md +0 -16
  260. package/docs/index.md +0 -77
  261. package/docs/install/audit.md +0 -57
  262. package/docs/install/cache.md +0 -59
  263. package/docs/install/catalogs.md +0 -298
  264. package/docs/install/index.md +0 -248
  265. package/docs/install/isolated.md +0 -197
  266. package/docs/install/lifecycle.md +0 -46
  267. package/docs/install/lockfile.md +0 -58
  268. package/docs/install/npmrc.md +0 -105
  269. package/docs/install/overrides.md +0 -73
  270. package/docs/install/patch.md +0 -59
  271. package/docs/install/registries.md +0 -30
  272. package/docs/install/security-scanner-api.md +0 -81
  273. package/docs/install/workspaces.md +0 -114
  274. package/docs/installation.md +0 -327
  275. package/docs/project/asan.md +0 -124
  276. package/docs/project/benchmarking.md +0 -203
  277. package/docs/project/bindgen.md +0 -225
  278. package/docs/project/building-windows.md +0 -162
  279. package/docs/project/contributing.md +0 -347
  280. package/docs/project/internals/build-process-for-ci.md +0 -75
  281. package/docs/project/licensing.md +0 -73
  282. package/docs/project/roadmap.md +0 -87
  283. package/docs/quickstart.md +0 -157
  284. package/docs/runtime/autoimport.md +0 -94
  285. package/docs/runtime/bun-apis.md +0 -207
  286. package/docs/runtime/bunfig.md +0 -772
  287. package/docs/runtime/debugger.md +0 -325
  288. package/docs/runtime/env.md +0 -253
  289. package/docs/runtime/hot.md +0 -145
  290. package/docs/runtime/index.md +0 -312
  291. package/docs/runtime/jsx.md +0 -385
  292. package/docs/runtime/loaders.md +0 -130
  293. package/docs/runtime/modules.md +0 -320
  294. package/docs/runtime/nodejs-apis.md +0 -463
  295. package/docs/runtime/plugins.md +0 -561
  296. package/docs/runtime/shell.md +0 -605
  297. package/docs/runtime/typescript.md +0 -139
  298. package/docs/runtime/web-apis.md +0 -128
  299. package/docs/test/configuration.md +0 -154
  300. package/docs/test/coverage.md +0 -142
  301. package/docs/test/discovery.md +0 -85
  302. package/docs/test/dom.md +0 -75
  303. package/docs/test/examples/concurrent-test-glob.md +0 -132
  304. package/docs/test/hot.md +0 -15
  305. package/docs/test/lifecycle.md +0 -81
  306. package/docs/test/mocks.md +0 -313
  307. package/docs/test/reporters.md +0 -117
  308. package/docs/test/runtime-behavior.md +0 -95
  309. package/docs/test/snapshots.md +0 -68
  310. package/docs/test/time.md +0 -126
  311. package/docs/test/writing.md +0 -825
  312. package/docs/typescript.md +0 -53
@@ -1,385 +0,0 @@
1
- Bun supports `.jsx` and `.tsx` files out of the box. Bun's internal transpiler converts JSX syntax into vanilla JavaScript before execution.
2
-
3
- ```tsx#react.tsx
4
- function Component(props: {message: string}) {
5
- return (
6
- <body>
7
- <h1 style={{color: 'red'}}>{props.message}</h1>
8
- </body>
9
- );
10
- }
11
-
12
- console.log(<Component message="Hello world!" />);
13
- ```
14
-
15
- ## Configuration
16
-
17
- Bun reads your `tsconfig.json` or `jsconfig.json` configuration files to determines how to perform the JSX transform internally. To avoid using either of these, the following options can also be defined in [`bunfig.toml`](https://bun.com/docs/runtime/bunfig).
18
-
19
- The following compiler options are respected.
20
-
21
- ### [`jsx`](https://www.typescriptlang.org/tsconfig#jsx)
22
-
23
- How JSX constructs are transformed into vanilla JavaScript internally. The table below lists the possible values of `jsx`, along with their transpilation of the following simple JSX component:
24
-
25
- ```tsx
26
- <Box width={5}>Hello</Box>
27
- ```
28
-
29
- {% table %}
30
-
31
- - Compiler options
32
- - Transpiled output
33
-
34
- ---
35
-
36
- - ```json
37
- {
38
- "jsx": "react"
39
- }
40
- ```
41
-
42
- - ```tsx
43
- import { createElement } from "react";
44
- createElement("Box", { width: 5 }, "Hello");
45
- ```
46
-
47
- ---
48
-
49
- - ```json
50
- {
51
- "jsx": "react-jsx"
52
- }
53
- ```
54
-
55
- - ```tsx
56
- import { jsx } from "react/jsx-runtime";
57
- jsx("Box", { width: 5 }, "Hello");
58
- ```
59
-
60
- ---
61
-
62
- - ```json
63
- {
64
- "jsx": "react-jsxdev"
65
- }
66
- ```
67
-
68
- - ```tsx
69
- import { jsxDEV } from "react/jsx-dev-runtime";
70
- jsxDEV(
71
- "Box",
72
- { width: 5, children: "Hello" },
73
- undefined,
74
- false,
75
- undefined,
76
- this,
77
- );
78
- ```
79
-
80
- The `jsxDEV` variable name is a convention used by React. The `DEV` suffix is a visible way to indicate that the code is intended for use in development. The development version of React is slower and includes additional validity checks & debugging tools.
81
-
82
- ---
83
-
84
- - ```json
85
- {
86
- "jsx": "preserve"
87
- }
88
- ```
89
-
90
- - ```tsx
91
- // JSX is not transpiled
92
- // "preserve" is not supported by Bun currently
93
- <Box width={5}>Hello</Box>
94
- ```
95
-
96
- {% /table %}
97
-
98
- <!-- {% table %}
99
-
100
- - `react`
101
- - `React.createElement("Box", {width: 5}, "Hello")`
102
-
103
- ---
104
-
105
- - `react-jsx`
106
- - `jsx("Box", {width: 5}, "Hello")`
107
-
108
- ---
109
-
110
- - `react-jsxdev`
111
- - `jsxDEV("Box", {width: 5}, "Hello", void 0, false)`
112
-
113
- ---
114
-
115
- - `preserve`
116
- - `<Box width={5}>Hello</Box>` Left as-is; not yet supported by Bun.
117
-
118
- {% /table %} -->
119
-
120
- ### [`jsxFactory`](https://www.typescriptlang.org/tsconfig#jsxFactory)
121
-
122
- {% callout %}
123
- **Note** — Only applicable when `jsx` is `react`.
124
- {% /callout %}
125
-
126
- The function name used to represent JSX constructs. Default value is `"createElement"`. This is useful for libraries like [Preact](https://preactjs.com/) that use a different function name (`"h"`).
127
-
128
- {% table %}
129
-
130
- - Compiler options
131
- - Transpiled output
132
-
133
- ---
134
-
135
- - ```json
136
- {
137
- "jsx": "react",
138
- "jsxFactory": "h"
139
- }
140
- ```
141
-
142
- - ```tsx
143
- import { h } from "react";
144
- h("Box", { width: 5 }, "Hello");
145
- ```
146
-
147
- {% /table %}
148
-
149
- ### [`jsxFragmentFactory`](https://www.typescriptlang.org/tsconfig#jsxFragmentFactory)
150
-
151
- {% callout %}
152
- **Note** — Only applicable when `jsx` is `react`.
153
- {% /callout %}
154
-
155
- The function name used to represent [JSX fragments](https://react.dev/reference/react/Fragment) such as `<>Hello</>`; only applicable when `jsx` is `react`. Default value is `"Fragment"`.
156
-
157
- {% table %}
158
-
159
- - Compiler options
160
- - Transpiled output
161
-
162
- ---
163
-
164
- - ```json
165
- {
166
- "jsx": "react",
167
- "jsxFactory": "myjsx",
168
- "jsxFragmentFactory": "MyFragment"
169
- }
170
- ```
171
-
172
- - ```tsx
173
- // input
174
- <>Hello</>;
175
-
176
- // output
177
- import { myjsx, MyFragment } from "react";
178
- myjsx(MyFragment, null, "Hello");
179
- ```
180
-
181
- {% /table %}
182
-
183
- ### [`jsxImportSource`](https://www.typescriptlang.org/tsconfig#jsxImportSource)
184
-
185
- {% callout %}
186
- **Note** — Only applicable when `jsx` is `react-jsx` or `react-jsxdev`.
187
- {% /callout %}
188
-
189
- The module from which the component factory function (`createElement`, `jsx`, `jsxDEV`, etc) will be imported. Default value is `"react"`. This will typically be necessary when using a component library like Preact.
190
-
191
- {% table %}
192
-
193
- - Compiler options
194
- - Transpiled output
195
-
196
- ---
197
-
198
- - ```jsonc
199
- {
200
- "jsx": "react",
201
- // jsxImportSource is not defined
202
- // default to "react"
203
- }
204
- ```
205
-
206
- - ```tsx
207
- import { jsx } from "react/jsx-runtime";
208
- jsx("Box", { width: 5, children: "Hello" });
209
- ```
210
-
211
- ---
212
-
213
- - ```jsonc
214
- {
215
- "jsx": "react-jsx",
216
- "jsxImportSource": "preact",
217
- }
218
- ```
219
-
220
- - ```tsx
221
- import { jsx } from "preact/jsx-runtime";
222
- jsx("Box", { width: 5, children: "Hello" });
223
- ```
224
-
225
- ---
226
-
227
- - ```jsonc
228
- {
229
- "jsx": "react-jsxdev",
230
- "jsxImportSource": "preact",
231
- }
232
- ```
233
-
234
- - ```tsx
235
- // /jsx-runtime is automatically appended
236
- import { jsxDEV } from "preact/jsx-dev-runtime";
237
- jsxDEV(
238
- "Box",
239
- { width: 5, children: "Hello" },
240
- undefined,
241
- false,
242
- undefined,
243
- this,
244
- );
245
- ```
246
-
247
- {% /table %}
248
-
249
- ### `jsxSideEffects`
250
-
251
- By default, Bun marks JSX expressions as `/* @__PURE__ */` so they can be removed during bundling if they are unused (known as "dead code elimination" or "tree shaking"). Set `jsxSideEffects` to `true` to prevent this behavior.
252
-
253
- {% table %}
254
-
255
- - Compiler options
256
- - Transpiled output
257
-
258
- ---
259
-
260
- - ```jsonc
261
- {
262
- "jsx": "react",
263
- // jsxSideEffects is false by default
264
- }
265
- ```
266
-
267
- - ```tsx
268
- // JSX expressions are marked as pure
269
- /* @__PURE__ */ React.createElement("div", null, "Hello");
270
- ```
271
-
272
- ---
273
-
274
- - ```jsonc
275
- {
276
- "jsx": "react",
277
- "jsxSideEffects": true,
278
- }
279
- ```
280
-
281
- - ```tsx
282
- // JSX expressions are not marked as pure
283
- React.createElement("div", null, "Hello");
284
- ```
285
-
286
- ---
287
-
288
- - ```jsonc
289
- {
290
- "jsx": "react-jsx",
291
- "jsxSideEffects": true,
292
- }
293
- ```
294
-
295
- - ```tsx
296
- // Automatic runtime also respects jsxSideEffects
297
- jsx("div", { children: "Hello" });
298
- ```
299
-
300
- {% /table %}
301
-
302
- This option is also available as a CLI flag:
303
-
304
- ```bash
305
- $ bun build --jsx-side-effects
306
- ```
307
-
308
- ### JSX pragma
309
-
310
- All of these values can be set on a per-file basis using _pragmas_. A pragma is a special comment that sets a compiler option in a particular file.
311
-
312
- {% table %}
313
-
314
- - Pragma
315
- - Equivalent config
316
-
317
- ---
318
-
319
- - ```ts
320
- // @jsx h
321
- ```
322
-
323
- - ```jsonc
324
- {
325
- "jsxFactory": "h",
326
- }
327
- ```
328
-
329
- ---
330
-
331
- - ```ts
332
- // @jsxFrag MyFragment
333
- ```
334
- - ```jsonc
335
- {
336
- "jsxFragmentFactory": "MyFragment",
337
- }
338
- ```
339
-
340
- ---
341
-
342
- - ```ts
343
- // @jsxImportSource preact
344
- ```
345
- - ```jsonc
346
- {
347
- "jsxImportSource": "preact",
348
- }
349
- ```
350
-
351
- {% /table %}
352
-
353
- ## Logging
354
-
355
- Bun implements special logging for JSX to make debugging easier. Given the following file:
356
-
357
- ```tsx#index.tsx
358
- import { Stack, UserCard } from "./components";
359
-
360
- console.log(
361
- <Stack>
362
- <UserCard name="Dom" bio="Street racer and Corona lover" />
363
- <UserCard name="Jakob" bio="Super spy and Dom's secret brother" />
364
- </Stack>
365
- );
366
- ```
367
-
368
- Bun will pretty-print the component tree when logged:
369
-
370
- {% image src="https://github.com/oven-sh/bun/assets/3084745/d29db51d-6837-44e2-b8be-84fc1b9e9d97" / %}
371
-
372
- ## Prop punning
373
-
374
- The Bun runtime also supports "prop punning" for JSX. This is a shorthand syntax useful for assigning a variable to a prop with the same name.
375
-
376
- ```tsx
377
- function Div(props: {className: string;}) {
378
- const {className} = props;
379
-
380
- // without punning
381
- return <div className={className} />;
382
- // with punning
383
- return <div {className} />;
384
- }
385
- ```
@@ -1,130 +0,0 @@
1
- ## TypeScript
2
-
3
- Bun natively supports TypeScript out of the box. All files are transpiled on the fly by Bun's fast native transpiler before being executed. Similar to other build tools, Bun does not perform typechecking; it simply removes type annotations from the file.
4
-
5
- ```bash
6
- $ bun index.js
7
- $ bun index.jsx
8
- $ bun index.ts
9
- $ bun index.tsx
10
- ```
11
-
12
- Some aspects of Bun's runtime behavior are affected by the contents of your `tsconfig.json` file. Refer to [Runtime > TypeScript](https://bun.com/docs/runtime/typescript) page for details.
13
-
14
- ## JSX
15
-
16
- Bun supports `.jsx` and `.tsx` files out of the box. Bun's internal transpiler converts JSX syntax into vanilla JavaScript before execution.
17
-
18
- ```tsx#react.tsx
19
- function Component(props: {message: string}) {
20
- return (
21
- <body>
22
- <h1 style={{color: 'red'}}>{props.message}</h1>
23
- </body>
24
- );
25
- }
26
-
27
- console.log(<Component message="Hello world!" />);
28
- ```
29
-
30
- Bun implements special logging for JSX to make debugging easier.
31
-
32
- ```bash
33
- $ bun run react.tsx
34
- <Component message="Hello world!" />
35
- ```
36
-
37
- ## Text files
38
-
39
- Text files can be imported as strings.
40
-
41
- {% codetabs %}
42
-
43
- ```ts#index.ts
44
- import text from "./text.txt";
45
- console.log(text);
46
- // => "Hello world!"
47
- ```
48
-
49
- ```txt#text.txt
50
- Hello world!
51
- ```
52
-
53
- {% /codetabs %}
54
-
55
- ## JSON, TOML, and YAML
56
-
57
- JSON, TOML, and YAML files can be directly imported from a source file. The contents will be loaded and returned as a JavaScript object.
58
-
59
- ```ts
60
- import pkg from "./package.json";
61
- import data from "./data.toml";
62
- import config from "./config.yaml";
63
- ```
64
-
65
- For more details on YAML support, see the [YAML API documentation](/docs/api/yaml).
66
-
67
- ## WASI
68
-
69
- {% callout %}
70
- 🚧 **Experimental**
71
- {% /callout %}
72
-
73
- Bun has experimental support for WASI, the [WebAssembly System Interface](https://github.com/WebAssembly/WASI). To run a `.wasm` binary with Bun:
74
-
75
- ```bash
76
- $ bun ./my-wasm-app.wasm
77
- # if the filename doesn't end with ".wasm"
78
- $ bun run ./my-wasm-app.whatever
79
- ```
80
-
81
- {% callout %}
82
-
83
- **Note** — WASI support is based on [wasi-js](https://github.com/sagemathinc/cowasm/tree/main/core/wasi-js). Currently, it only supports WASI binaries that use the `wasi_snapshot_preview1` or `wasi_unstable` APIs. Bun's implementation is not fully optimized for performance; this will become more of a priority as WASM grows in popularity.
84
- {% /callout %}
85
-
86
- ## SQLite
87
-
88
- You can import sqlite databases directly into your code. Bun will automatically load the database and return a `Database` object.
89
-
90
- ```ts
91
- import db from "./my.db" with { type: "sqlite" };
92
- console.log(db.query("select * from users LIMIT 1").get());
93
- ```
94
-
95
- This uses [`bun:sqlite`](https://bun.com/docs/api/sqlite).
96
-
97
- ## Custom loaders
98
-
99
- Support for additional file types can be implemented with plugins. Refer to [Runtime > Plugins](https://bun.com/docs/bundler/plugins) for full documentation.
100
-
101
- <!--
102
-
103
- A loader determines how to map imports &amp; file extensions to transforms and output.
104
-
105
- Currently, Bun implements the following loaders:
106
-
107
- | Input | Loader | Output |
108
- | ----- | ----------------------------- | ------ |
109
- | .js | JSX + JavaScript | .js |
110
- | .jsx | JSX + JavaScript | .js |
111
- | .ts | TypeScript + JavaScript | .js |
112
- | .tsx | TypeScript + JSX + JavaScript | .js |
113
- | .mjs | JavaScript | .js |
114
- | .cjs | JavaScript | .js |
115
- | .mts | TypeScript | .js |
116
- | .cts | TypeScript | .js |
117
- | .toml | TOML | .js |
118
- | .css | CSS | .css |
119
- | .env | Env | N/A |
120
- | .\* | file | string |
121
-
122
- Everything else is treated as `file`. `file` replaces the import with a URL (or a path).
123
-
124
- You can configure which loaders map to which extensions by passing `--loaders` to `bun`. For example:
125
-
126
- ```sh
127
- $ bun --loader=.js:js
128
- ```
129
-
130
- This will disable JSX transforms for `.js` files. -->