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,139 +0,0 @@
1
- Bun treats TypeScript as a first-class citizen.
2
-
3
- {% callout %}
4
-
5
- **Note** — To add type declarations for Bun APIs like the `Bun` global, follow the instructions at [Intro > TypeScript](https://bun.com/docs/typescript). This page describes how the Bun runtime runs TypeScript code.
6
-
7
- {% /callout %}
8
-
9
- ## Running `.ts` files
10
-
11
- Bun can directly execute `.ts` and `.tsx` files just like vanilla JavaScript, with no extra configuration. If you import a `.ts` or `.tsx` file (or an `npm` module that exports these files), Bun internally transpiles it into JavaScript then executes the file.
12
-
13
- **Note** — Similar to other build tools, Bun does not typecheck the files. Use [`tsc`](https://www.typescriptlang.org/docs/handbook/compiler-options.html) (the official TypeScript CLI) if you're looking to catch static type errors.
14
-
15
- {% callout %}
16
-
17
- **Is transpiling still necessary?** — Because Bun can directly execute TypeScript, you may not need to transpile your TypeScript to run in production. Bun internally transpiles every file it executes (both `.js` and `.ts`), so the additional overhead of directly executing your `.ts/.tsx` source files is negligible.
18
-
19
- That said, if you are using Bun as a development tool but still targeting Node.js or browsers in production, you'll still need to transpile.
20
-
21
- {% /callout %}
22
-
23
- ## Path mapping
24
-
25
- When resolving modules, Bun's runtime respects path mappings defined in [`compilerOptions.paths`](https://www.typescriptlang.org/tsconfig#paths) in your `tsconfig.json`. No other runtime does this.
26
-
27
- Consider the following `tsconfig.json`.
28
-
29
- ```json
30
- {
31
- "compilerOptions": {
32
- "baseUrl": "./src",
33
- "paths": {
34
- "data": ["./data.ts"]
35
- }
36
- }
37
- }
38
- ```
39
-
40
- Bun will use `baseUrl` to resolve module paths.
41
-
42
- ```ts
43
- // resolves to ./src/components/Button.tsx
44
- import { Button } from "components/Button.tsx";
45
- ```
46
-
47
- Bun will also correctly resolve imports from `"data"`.
48
-
49
- {% codetabs %}
50
-
51
- ```ts#index.ts
52
- import { foo } from "data";
53
- console.log(foo); // => "Hello world!"
54
- ```
55
-
56
- ```ts#data.ts
57
- export const foo = "Hello world!"
58
- ```
59
-
60
- {% /codetabs %}
61
-
62
- ## Experimental Decorators
63
-
64
- Bun supports the pre-TypeScript 5.0 experimental decorators syntax.
65
-
66
- ```ts#hello.ts
67
- // Simple logging decorator
68
- function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
69
- const originalMethod = descriptor.value;
70
-
71
- descriptor.value = function(...args: any[]) {
72
- console.log(`Calling ${propertyKey} with:`, args);
73
- return originalMethod.apply(this, args);
74
- };
75
- }
76
-
77
- class Example {
78
- @log
79
- greet(name: string) {
80
- return `Hello ${name}!`;
81
- }
82
- }
83
-
84
- // Usage
85
- const example = new Example();
86
- example.greet("world"); // Logs: "Calling greet with: ['world']"
87
- ```
88
-
89
- To enable it, add `"experimentalDecorators": true` to your `tsconfig.json`:
90
-
91
- ```jsonc#tsconfig.json
92
- {
93
- "compilerOptions": {
94
- // ... rest of your config
95
- "experimentalDecorators": true,
96
- },
97
- }
98
- ```
99
-
100
- We generally don't recommend using this in new codebases, but plenty of existing codebases have come to rely on it.
101
-
102
- ### emitDecoratorMetadata
103
-
104
- Bun supports `emitDecoratorMetadata` in your `tsconfig.json`. This enables emitting design-time type metadata for decorated declarations in source files.
105
-
106
- ```ts#emit-decorator-metadata.ts
107
- import "reflect-metadata";
108
-
109
- class User {
110
- id: number;
111
- name: string;
112
- }
113
-
114
- function Injectable(target: Function) {
115
- // Get metadata about constructor parameters
116
- const params = Reflect.getMetadata("design:paramtypes", target);
117
- console.log("Dependencies:", params); // [User]
118
- }
119
-
120
- @Injectable
121
- class UserService {
122
- constructor(private user: User) {}
123
- }
124
-
125
- // Creates new UserService instance with dependencies
126
- const container = new UserService(new User());
127
- ```
128
-
129
- To enable it, add `"emitDecoratorMetadata": true` to your `tsconfig.json`:
130
-
131
- ```jsonc#tsconfig.json
132
- {
133
- "compilerOptions": {
134
- // ... rest of your config
135
- "experimentalDecorators": true,
136
- "emitDecoratorMetadata": true,
137
- },
138
- }
139
- ```
@@ -1,128 +0,0 @@
1
- Some Web APIs aren't relevant in the context of a server-first runtime like Bun, such as the [DOM API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API#html_dom_api_interfaces) or [History API](https://developer.mozilla.org/en-US/docs/Web/API/History_API). Many others, though, are broadly useful outside of the browser context; when possible, Bun implements these Web-standard APIs instead of introducing new APIs.
2
-
3
- The following Web APIs are partially or completely supported.
4
-
5
- {% table %}
6
-
7
- ---
8
-
9
- - HTTP
10
- - [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch)
11
- [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
12
- [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
13
- [`Headers`](https://developer.mozilla.org/en-US/docs/Web/API/Headers)
14
- [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)
15
- [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)
16
-
17
- ---
18
-
19
- - URLs
20
- - [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL)
21
- [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)
22
-
23
- ---
24
-
25
- - Web Workers
26
- - [`Worker`](https://developer.mozilla.org/en-US/docs/Web/API/Worker)
27
- [`self.postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)
28
- [`structuredClone`](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)
29
- [`MessagePort`](https://developer.mozilla.org/en-US/docs/Web/API/MessagePort)
30
- [`MessageChannel`](https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel)
31
- [`BroadcastChannel`](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel).
32
-
33
- ---
34
-
35
- - Streams
36
- - [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)
37
- [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream)
38
- [`TransformStream`](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream)
39
- [`ByteLengthQueuingStrategy`](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy)
40
- [`CountQueuingStrategy`](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy) and associated classes
41
-
42
- ---
43
-
44
- - Blob
45
- - [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob)
46
-
47
- ---
48
-
49
- - WebSockets
50
- - [`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)
51
-
52
- ---
53
-
54
- - Encoding and decoding
55
- - [`atob`](https://developer.mozilla.org/en-US/docs/Web/API/atob)
56
- [`btoa`](https://developer.mozilla.org/en-US/docs/Web/API/btoa)
57
- [`TextEncoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder)
58
- [`TextDecoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder)
59
-
60
- ---
61
-
62
- - JSON
63
- - [`JSON`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)
64
-
65
- ---
66
-
67
- - Timeouts
68
- - [`setTimeout`](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout)
69
- [`clearTimeout`](https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout)
70
-
71
- ---
72
-
73
- - Intervals
74
- - [`setInterval`](https://developer.mozilla.org/en-US/docs/Web/API/setInterval)
75
- [`clearInterval`](https://developer.mozilla.org/en-US/docs/Web/API/clearInterval)
76
-
77
- ---
78
-
79
- - Crypto
80
- - [`crypto`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto)
81
- [`SubtleCrypto`](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto)
82
- [`CryptoKey`](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey)
83
-
84
- ---
85
-
86
- - Debugging
87
-
88
- - [`console`](https://developer.mozilla.org/en-US/docs/Web/API/console)
89
- [`performance`](https://developer.mozilla.org/en-US/docs/Web/API/Performance)
90
-
91
- ---
92
-
93
- - Microtasks
94
- - [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask)
95
-
96
- ---
97
-
98
- - Errors
99
- - [`reportError`](https://developer.mozilla.org/en-US/docs/Web/API/reportError)
100
-
101
- ---
102
-
103
- - User interaction
104
- - [`alert`](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert)
105
- [`confirm`](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm)
106
- [`prompt`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt) (intended for interactive CLIs)
107
-
108
- <!-- - Blocking. Prints the alert message to terminal and awaits `[ENTER]` before proceeding. -->
109
- <!-- - Blocking. Prints confirmation message and awaits `[y/N]` input from user. Returns `true` if user entered `y` or `Y`, `false` otherwise.
110
- - Blocking. Prints prompt message and awaits user input. Returns the user input as a string. -->
111
-
112
- ---
113
-
114
- - Realms
115
- - [`ShadowRealm`](https://github.com/tc39/proposal-shadowrealm)
116
-
117
- ---
118
-
119
- - Events
120
- - [`EventTarget`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)
121
- [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event)
122
- [`ErrorEvent`](https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent)
123
- [`CloseEvent`](https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent)
124
- [`MessageEvent`](https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent)
125
-
126
- ---
127
-
128
- {% /table %}
@@ -1,154 +0,0 @@
1
- Configure `bun test` via `bunfig.toml` file and command-line options. This page documents the available configuration options for `bun test`.
2
-
3
- ## bunfig.toml options
4
-
5
- You can configure `bun test` behavior by adding a `[test]` section to your `bunfig.toml` file:
6
-
7
- ```toml
8
- [test]
9
- # Options go here
10
- ```
11
-
12
- ### Test discovery
13
-
14
- #### root
15
-
16
- The `root` option specifies a root directory for test discovery, overriding the default behavior of scanning from the project root.
17
-
18
- ```toml
19
- [test]
20
- root = "src" # Only scan for tests in the src directory
21
- ```
22
-
23
- ### Reporters
24
-
25
- #### reporter.junit
26
-
27
- Configure the JUnit reporter output file path directly in the config file:
28
-
29
- ```toml
30
- [test.reporter]
31
- junit = "path/to/junit.xml" # Output path for JUnit XML report
32
- ```
33
-
34
- This complements the `--reporter=junit` and `--reporter-outfile` CLI flags.
35
-
36
- ### Memory usage
37
-
38
- #### smol
39
-
40
- Enable the `--smol` memory-saving mode specifically for the test runner:
41
-
42
- ```toml
43
- [test]
44
- smol = true # Reduce memory usage during test runs
45
- ```
46
-
47
- This is equivalent to using the `--smol` flag on the command line.
48
-
49
- ### Test execution
50
-
51
- #### concurrentTestGlob
52
-
53
- Automatically run test files matching a glob pattern with concurrent test execution enabled. This is useful for gradually migrating test suites to concurrent execution or for running specific test types concurrently.
54
-
55
- ```toml
56
- [test]
57
- concurrentTestGlob = "**/concurrent-*.test.ts" # Run files matching this pattern concurrently
58
- ```
59
-
60
- Test files matching this pattern will behave as if the `--concurrent` flag was passed, running all tests within those files concurrently. This allows you to:
61
-
62
- - Gradually migrate your test suite to concurrent execution
63
- - Run integration tests concurrently while keeping unit tests sequential
64
- - Separate fast concurrent tests from tests that require sequential execution
65
-
66
- The `--concurrent` CLI flag will override this setting when specified, forcing all tests to run concurrently regardless of the glob pattern.
67
-
68
- #### randomize
69
-
70
- Run tests in random order to identify tests with hidden dependencies:
71
-
72
- ```toml
73
- [test]
74
- randomize = true
75
- ```
76
-
77
- #### seed
78
-
79
- Specify a seed for reproducible random test order. Requires `randomize = true`:
80
-
81
- ```toml
82
- [test]
83
- randomize = true
84
- seed = 2444615283
85
- ```
86
-
87
- #### rerunEach
88
-
89
- Re-run each test file multiple times to identify flaky tests:
90
-
91
- ```toml
92
- [test]
93
- rerunEach = 3
94
- ```
95
-
96
- ### Coverage options
97
-
98
- In addition to the options documented in the [coverage documentation](./coverage.md), the following options are available:
99
-
100
- #### coverageSkipTestFiles
101
-
102
- Exclude files matching test patterns (e.g., \*.test.ts) from the coverage report:
103
-
104
- ```toml
105
- [test]
106
- coverageSkipTestFiles = true # Exclude test files from coverage reports
107
- ```
108
-
109
- #### coverageThreshold (Object form)
110
-
111
- The coverage threshold can be specified either as a number (as shown in the coverage documentation) or as an object with specific thresholds:
112
-
113
- ```toml
114
- [test]
115
- # Set specific thresholds for different coverage metrics
116
- coverageThreshold = { lines = 0.9, functions = 0.8, statements = 0.85 }
117
- ```
118
-
119
- Setting any of these enables `fail_on_low_coverage`, causing the test run to fail if coverage is below the threshold.
120
-
121
- #### coveragePathIgnorePatterns
122
-
123
- Exclude specific files or file patterns from coverage reports using glob patterns:
124
-
125
- ```toml
126
- [test]
127
- # Single pattern
128
- coveragePathIgnorePatterns = "**/*.spec.ts"
129
-
130
- # Multiple patterns
131
- coveragePathIgnorePatterns = [
132
- "**/*.spec.ts",
133
- "**/*.test.ts",
134
- "src/utils/**",
135
- "*.config.js"
136
- ]
137
- ```
138
-
139
- Files matching any of these patterns will be excluded from coverage calculation and reporting. See the [coverage documentation](./coverage.md) for more details and examples.
140
-
141
- #### coverageIgnoreSourcemaps
142
-
143
- Internally, Bun transpiles every file. That means code coverage must also go through sourcemaps before they can be reported. We expose this as a flag to allow you to opt out of this behavior, but it will be confusing because during the transpilation process, Bun may move code around and change variable names. This option is mostly useful for debugging coverage issues.
144
-
145
- ```toml
146
- [test]
147
- coverageIgnoreSourcemaps = true # Don't use sourcemaps for coverage analysis
148
- ```
149
-
150
- When using this option, you probably want to stick a `// @bun` comment at the top of the source file to opt out of the transpilation process.
151
-
152
- ### Install settings inheritance
153
-
154
- The `bun test` command inherits relevant network and installation configuration (registry, cafile, prefer, exact, etc.) from the `[install]` section of bunfig.toml. This is important if tests need to interact with private registries or require specific install behaviors triggered during the test run.
@@ -1,142 +0,0 @@
1
- Bun's test runner now supports built-in _code coverage reporting_. This makes it easy to see how much of the codebase is covered by tests, and find areas that are not currently well-tested.
2
-
3
- ## Enabling coverage
4
-
5
- `bun:test` supports seeing which lines of code are covered by tests. To use this feature, pass `--coverage` to the CLI. It will print out a coverage report to the console:
6
-
7
- ```js
8
- $ bun test --coverage
9
- -------------|---------|---------|-------------------
10
- File | % Funcs | % Lines | Uncovered Line #s
11
- -------------|---------|---------|-------------------
12
- All files | 38.89 | 42.11 |
13
- index-0.ts | 33.33 | 36.84 | 10-15,19-24
14
- index-1.ts | 33.33 | 36.84 | 10-15,19-24
15
- index-10.ts | 33.33 | 36.84 | 10-15,19-24
16
- index-2.ts | 33.33 | 36.84 | 10-15,19-24
17
- index-3.ts | 33.33 | 36.84 | 10-15,19-24
18
- index-4.ts | 33.33 | 36.84 | 10-15,19-24
19
- index-5.ts | 33.33 | 36.84 | 10-15,19-24
20
- index-6.ts | 33.33 | 36.84 | 10-15,19-24
21
- index-7.ts | 33.33 | 36.84 | 10-15,19-24
22
- index-8.ts | 33.33 | 36.84 | 10-15,19-24
23
- index-9.ts | 33.33 | 36.84 | 10-15,19-24
24
- index.ts | 100.00 | 100.00 |
25
- -------------|---------|---------|-------------------
26
- ```
27
-
28
- To always enable coverage reporting by default, add the following line to your `bunfig.toml`:
29
-
30
- ```toml
31
- [test]
32
-
33
- # always enable coverage
34
- coverage = true
35
- ```
36
-
37
- By default coverage reports will _include_ test files and _exclude_ sourcemaps. This is usually what you want, but it can be configured otherwise in `bunfig.toml`.
38
-
39
- ```toml
40
- [test]
41
- coverageSkipTestFiles = true # default false
42
- ```
43
-
44
- ### Coverage thresholds
45
-
46
- It is possible to specify a coverage threshold in `bunfig.toml`. If your test suite does not meet or exceed this threshold, `bun test` will exit with a non-zero exit code to indicate the failure.
47
-
48
- ```toml
49
- [test]
50
-
51
- # to require 90% line-level and function-level coverage
52
- coverageThreshold = 0.9
53
-
54
- # to set different thresholds for lines and functions
55
- coverageThreshold = { lines = 0.9, functions = 0.9, statements = 0.9 }
56
- ```
57
-
58
- Setting any of these thresholds enables `fail_on_low_coverage`, causing the test run to fail if coverage is below the threshold.
59
-
60
- ### Sourcemaps
61
-
62
- Internally, Bun transpiles all files by default, so Bun automatically generates an internal [source map](https://web.dev/source-maps/) that maps lines of your original source code onto Bun's internal representation. If for any reason you want to disable this, set `test.coverageIgnoreSourcemaps` to `true`; this will rarely be desirable outside of advanced use cases.
63
-
64
- ```toml
65
- [test]
66
- coverageIgnoreSourcemaps = true # default false
67
- ```
68
-
69
- ### Exclude files from coverage
70
-
71
- #### Skip test files
72
-
73
- By default, test files themselves are included in coverage reports. You can exclude them with:
74
-
75
- ```toml
76
- [test]
77
- coverageSkipTestFiles = true # default false
78
- ```
79
-
80
- This will exclude files matching test patterns (e.g., _.test.ts, _\_spec.js) from the coverage report.
81
-
82
- #### Ignore specific paths and patterns
83
-
84
- You can exclude specific files or file patterns from coverage reports using `coveragePathIgnorePatterns`:
85
-
86
- ```toml
87
- [test]
88
- # Single pattern
89
- coveragePathIgnorePatterns = "**/*.spec.ts"
90
-
91
- # Multiple patterns
92
- coveragePathIgnorePatterns = [
93
- "**/*.spec.ts",
94
- "**/*.test.ts",
95
- "src/utils/**",
96
- "*.config.js"
97
- ]
98
- ```
99
-
100
- This option accepts glob patterns and works similarly to Jest's `collectCoverageFrom` ignore patterns. Files matching any of these patterns will be excluded from coverage calculation and reporting in both text and LCOV outputs.
101
-
102
- Common use cases:
103
-
104
- - Exclude utility files: `"src/utils/**"`
105
- - Exclude configuration files: `"*.config.js"`
106
- - Exclude specific test patterns: `"**/*.spec.ts"`
107
- - Exclude build artifacts: `"dist/**"`
108
-
109
- ### Coverage defaults
110
-
111
- By default, coverage reports:
112
-
113
- 1. Exclude `node_modules` directories
114
- 2. Exclude files loaded via non-JS/TS loaders (e.g., .css, .txt) unless a custom JS loader is specified
115
- 3. Include test files themselves (can be disabled with `coverageSkipTestFiles = true` as shown above)
116
- 4. Can exclude additional files with `coveragePathIgnorePatterns` as shown above
117
-
118
- ### Coverage reporters
119
-
120
- By default, coverage reports will be printed to the console.
121
-
122
- For persistent code coverage reports in CI environments and for other tools, you can pass a `--coverage-reporter=lcov` CLI option or `coverageReporter` option in `bunfig.toml`.
123
-
124
- ```toml
125
- [test]
126
- coverageReporter = ["text", "lcov"] # default ["text"]
127
- coverageDir = "path/to/somewhere" # default "coverage"
128
- ```
129
-
130
- | Reporter | Description |
131
- | -------- | --------------------------------------------------------------------------- |
132
- | `text` | Prints a text summary of the coverage to the console. |
133
- | `lcov` | Save coverage in [lcov](https://github.com/linux-test-project/lcov) format. |
134
-
135
- #### lcov coverage reporter
136
-
137
- To generate an lcov report, you can use the `lcov` reporter. This will generate an `lcov.info` file in the `coverage` directory.
138
-
139
- ```toml
140
- [test]
141
- coverageReporter = "lcov"
142
- ```
@@ -1,85 +0,0 @@
1
- bun test's file discovery mechanism determines which files to run as tests. Understanding how it works helps you structure your test files effectively.
2
-
3
- ## Default Discovery Logic
4
-
5
- By default, `bun test` recursively searches the project directory for files that match specific patterns:
6
-
7
- - `*.test.{js|jsx|ts|tsx}` - Files ending with `.test.js`, `.test.jsx`, `.test.ts`, or `.test.tsx`
8
- - `*_test.{js|jsx|ts|tsx}` - Files ending with `_test.js`, `_test.jsx`, `_test.ts`, or `_test.tsx`
9
- - `*.spec.{js|jsx|ts|tsx}` - Files ending with `.spec.js`, `.spec.jsx`, `.spec.ts`, or `.spec.tsx`
10
- - `*_spec.{js|jsx|ts|tsx}` - Files ending with `_spec.js`, `_spec.jsx`, `_spec.ts`, or `_spec.tsx`
11
-
12
- ## Exclusions
13
-
14
- By default, Bun test ignores:
15
-
16
- - `node_modules` directories
17
- - Hidden directories (those starting with a period `.`)
18
- - Files that don't have JavaScript-like extensions (based on available loaders)
19
-
20
- ## Customizing Test Discovery
21
-
22
- ### Position Arguments as Filters
23
-
24
- You can filter which test files run by passing additional positional arguments to `bun test`:
25
-
26
- ```bash
27
- $ bun test <filter> <filter> ...
28
- ```
29
-
30
- Any test file with a path that contains one of the filters will run. These filters are simple substring matches, not glob patterns.
31
-
32
- For example, to run all tests in a `utils` directory:
33
-
34
- ```bash
35
- $ bun test utils
36
- ```
37
-
38
- This would match files like `src/utils/string.test.ts` and `lib/utils/array_test.js`.
39
-
40
- ### Specifying Exact File Paths
41
-
42
- To run a specific file in the test runner, make sure the path starts with `./` or `/` to distinguish it from a filter name:
43
-
44
- ```bash
45
- $ bun test ./test/specific-file.test.ts
46
- ```
47
-
48
- ### Filter by Test Name
49
-
50
- To filter tests by name rather than file path, use the `-t`/`--test-name-pattern` flag with a regex pattern:
51
-
52
- ```sh
53
- # run all tests with "addition" in the name
54
- $ bun test --test-name-pattern addition
55
- ```
56
-
57
- The pattern is matched against a concatenated string of the test name prepended with the labels of all its parent describe blocks, separated by spaces. For example, a test defined as:
58
-
59
- ```js
60
- describe("Math", () => {
61
- describe("operations", () => {
62
- test("should add correctly", () => {
63
- // ...
64
- });
65
- });
66
- });
67
- ```
68
-
69
- Would be matched against the string "Math operations should add correctly".
70
-
71
- ### Changing the Root Directory
72
-
73
- By default, Bun looks for test files starting from the current working directory. You can change this with the `root` option in your `bunfig.toml`:
74
-
75
- ```toml
76
- [test]
77
- root = "src" # Only scan for tests in the src directory
78
- ```
79
-
80
- ## Execution Order
81
-
82
- Tests are run in the following order:
83
-
84
- 1. Test files are executed sequentially (not in parallel)
85
- 2. Within each file, tests run sequentially based on their definition order