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,44 +0,0 @@
1
- ---
2
- name: Generate a yarn-compatible lockfile
3
- ---
4
-
5
- {% callout %}
6
- Bun v1.1.39 introduced `bun.lock`, a JSONC formatted lockfile. `bun.lock` is human-readable and git-diffable without configuration, at no cost to performance. [**Learn more.**](https://bun.com/docs/install/lockfile#text-based-lockfile)
7
- {% /callout %}
8
-
9
- ---
10
-
11
- Use the `--yarn` flag to generate a Yarn-compatible `yarn.lock` file (in addition to `bun.lock`).
12
-
13
- ```sh
14
- $ bun install --yarn
15
- ```
16
-
17
- ---
18
-
19
- To set this as the default behavior, add the following to your `bunfig.toml` file.
20
-
21
- ```toml#bunfig.toml
22
- [install.lockfile]
23
- print = "yarn"
24
- ```
25
-
26
- ---
27
-
28
- To print a Yarn lockfile to your console without writing it to disk, "run" your `bun.lockb` with `bun`.
29
-
30
- ```sh
31
- $ bun bun.lockb
32
- # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
33
- # yarn lockfile v1
34
- # bun ./bun.lockb --hash: 9BFBF11D86084AAB-9418b03ff880c569-390CE6459EACEC9A...
35
-
36
- abab@^2.0.6:
37
- version "2.0.6"
38
- resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz"
39
- integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvH...
40
- ```
41
-
42
- ---
43
-
44
- See [Docs > Package manager](https://bun.com/docs/cli/install) for complete documentation of Bun's package manager.
@@ -1,58 +0,0 @@
1
- ---
2
- name: Parse command-line arguments
3
- ---
4
-
5
- The _argument vector_ is the list of arguments passed to the program when it is run. It is available as `Bun.argv`.
6
-
7
- ```ts#cli.ts
8
- console.log(Bun.argv);
9
- ```
10
-
11
- ---
12
-
13
- Running this file with arguments results in the following:
14
-
15
- ```sh
16
- $ bun run cli.ts --flag1 --flag2 value
17
- [ '/path/to/bun', '/path/to/cli.ts', '--flag1', '--flag2', 'value' ]
18
- ```
19
-
20
- ---
21
-
22
- To parse `argv` into a more useful format, `util.parseArgs` would be helpful.
23
-
24
- Example:
25
-
26
- ```ts#cli.ts
27
- import { parseArgs } from "util";
28
-
29
- const { values, positionals } = parseArgs({
30
- args: Bun.argv,
31
- options: {
32
- flag1: {
33
- type: 'boolean',
34
- },
35
- flag2: {
36
- type: 'string',
37
- },
38
- },
39
- strict: true,
40
- allowPositionals: true,
41
- });
42
-
43
- console.log(values);
44
- console.log(positionals);
45
- ```
46
-
47
- ---
48
-
49
- then it outputs
50
-
51
- ```sh
52
- $ bun run cli.ts --flag1 --flag2 value
53
- {
54
- flag1: true,
55
- flag2: "value",
56
- }
57
- [ "/path/to/bun", "/path/to/cli.ts" ]
58
- ```
@@ -1,16 +0,0 @@
1
- ---
2
- name: Listen for CTRL+C
3
- ---
4
-
5
- The `ctrl+c` shortcut sends an _interrupt signal_ to the running process. This signal can be intercepted by listening for the `SIGINT` event. If you want to close the process, you must explicitly call `process.exit()`.
6
-
7
- ```ts
8
- process.on("SIGINT", () => {
9
- console.log("Ctrl-C was pressed");
10
- process.exit();
11
- });
12
- ```
13
-
14
- ---
15
-
16
- See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
@@ -1,66 +0,0 @@
1
- ---
2
- name: Spawn a child process and communicate using IPC
3
- ---
4
-
5
- Use [`Bun.spawn()`](https://bun.com/docs/api/spawn) to spawn a child process. When spawning a second `bun` process, you can open a direct inter-process communication (IPC) channel between the two processes.
6
-
7
- {%callout%}
8
- **Note** — This API is only compatible with other `bun` processes. Use `process.execPath` to get a path to the currently running `bun` executable.
9
- {%/callout%}
10
-
11
- ```ts#parent.ts
12
- const child = Bun.spawn(["bun", "child.ts"], {
13
- ipc(message) {
14
- /**
15
- * The message received from the sub process
16
- **/
17
- },
18
- });
19
- ```
20
-
21
- ---
22
-
23
- The parent process can send messages to the subprocess using the `.send()` method on the returned `Subprocess` instance. A reference to the sending subprocess is also available as the second argument in the `ipc` handler.
24
-
25
- ```ts#parent.ts
26
- const childProc = Bun.spawn(["bun", "child.ts"], {
27
- ipc(message, childProc) {
28
- /**
29
- * The message received from the sub process
30
- **/
31
- childProc.send("Respond to child")
32
- },
33
- });
34
-
35
- childProc.send("I am your father"); // The parent can send messages to the child as well
36
- ```
37
-
38
- ---
39
-
40
- Meanwhile the child process can send messages to its parent using with `process.send()` and receive messages with `process.on("message")`. This is the same API used for `child_process.fork()` in Node.js.
41
-
42
- ```ts#child.ts
43
- process.send("Hello from child as string");
44
- process.send({ message: "Hello from child as object" });
45
-
46
- process.on("message", (message) => {
47
- // print message from parent
48
- console.log(message);
49
- });
50
- ```
51
-
52
- ---
53
-
54
- All messages are serialized using the JSC `serialize` API, which allows for the same set of [transferrable types](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects) supported by `postMessage` and `structuredClone`, including strings, typed arrays, streams, and objects.
55
-
56
- ```ts#child.ts
57
- // send a string
58
- process.send("Hello from child as string");
59
-
60
- // send an object
61
- process.send({ message: "Hello from child as object" });
62
- ```
63
-
64
- ---
65
-
66
- See [Docs > API > Child processes](https://bun.com/docs/api/spawn) for complete documentation.
@@ -1,13 +0,0 @@
1
- ---
2
- name: Get the process uptime in nanoseconds
3
- ---
4
-
5
- Use `Bun.nanoseconds()` to get the total number of nanoseconds the `bun` process has been alive.
6
-
7
- ```ts
8
- Bun.nanoseconds();
9
- ```
10
-
11
- ---
12
-
13
- See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
@@ -1,39 +0,0 @@
1
- ---
2
- name: Listen to OS signals
3
- ---
4
-
5
- Bun supports the Node.js `process` global, including the `process.on()` method for listening to OS signals.
6
-
7
- ```ts
8
- process.on("SIGINT", () => {
9
- console.log("Received SIGINT");
10
- });
11
- ```
12
-
13
- ---
14
-
15
- If you don't know which signal to listen for, you listen to the umbrella `"exit"` event.
16
-
17
- ```ts
18
- process.on("exit", code => {
19
- console.log(`Process exited with code ${code}`);
20
- });
21
- ```
22
-
23
- ---
24
-
25
- If you don't know which signal to listen for, you listen to the [`"beforeExit"`](https://nodejs.org/api/process.html#event-beforeexit) and [`"exit"`](https://nodejs.org/api/process.html#event-exit) events.
26
-
27
- ```ts
28
- process.on("beforeExit", code => {
29
- console.log(`Event loop is empty!`);
30
- });
31
-
32
- process.on("exit", code => {
33
- console.log(`Process is exiting with code ${code}`);
34
- });
35
- ```
36
-
37
- ---
38
-
39
- See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
@@ -1,31 +0,0 @@
1
- ---
2
- name: Read stderr from a child process
3
- ---
4
-
5
- When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the child process inherits the `stderr` of the spawning process. If instead you'd prefer to read and handle `stderr`, set the `stderr` option to `"pipe"`.
6
-
7
- ```ts
8
- const proc = Bun.spawn(["echo", "hello"], {
9
- stderr: "pipe",
10
- });
11
- proc.stderr; // => ReadableStream
12
- ```
13
-
14
- ---
15
-
16
- To read `stderr` until the child process exits, use .text()
17
-
18
- ```ts
19
- const proc = Bun.spawn(["echo", "hello"], {
20
- stderr: "pipe",
21
- });
22
-
23
- const errors: string = await proc.stderr.text();
24
- if (errors) {
25
- // handle errors
26
- }
27
- ```
28
-
29
- ---
30
-
31
- See [Docs > API > Child processes](https://bun.com/docs/api/spawn) for complete documentation.
@@ -1,26 +0,0 @@
1
- ---
2
- name: Read stdout from a child process
3
- ---
4
-
5
- When using [`Bun.spawn()`](https://bun.com/docs/api/spawn), the `stdout` of the child process can be consumed as a `ReadableStream` via `proc.stdout`.
6
-
7
- ```ts
8
- const proc = Bun.spawn(["echo", "hello"]);
9
-
10
- const output = await proc.stdout.text();
11
- output; // => "hello"
12
- ```
13
-
14
- ---
15
-
16
- To instead pipe the `stdout` of the child process to `stdout` of the parent process, set "inherit".
17
-
18
- ```ts
19
- const proc = Bun.spawn(["echo", "hello"], {
20
- stdout: "inherit",
21
- });
22
- ```
23
-
24
- ---
25
-
26
- See [Docs > API > Child processes](https://bun.com/docs/api/spawn) for complete documentation.
@@ -1,41 +0,0 @@
1
- ---
2
- name: Spawn a child process
3
- ---
4
-
5
- Use [`Bun.spawn()`](https://bun.com/docs/api/spawn) to spawn a child process.
6
-
7
- ```ts
8
- const proc = Bun.spawn(["echo", "hello"]);
9
-
10
- // await completion
11
- await proc.exited;
12
- ```
13
-
14
- ---
15
-
16
- The second argument accepts a configuration object.
17
-
18
- ```ts
19
- const proc = Bun.spawn(["echo", "Hello, world!"], {
20
- cwd: "/tmp",
21
- env: { FOO: "bar" },
22
- onExit(proc, exitCode, signalCode, error) {
23
- // exit handler
24
- },
25
- });
26
- ```
27
-
28
- ---
29
-
30
- By default, the `stdout` of the child process can be consumed as a `ReadableStream` using `proc.stdout`.
31
-
32
- ```ts
33
- const proc = Bun.spawn(["echo", "hello"]);
34
-
35
- const output = await proc.stdout.text();
36
- output; // => "hello\n"
37
- ```
38
-
39
- ---
40
-
41
- See [Docs > API > Child processes](https://bun.com/docs/api/spawn) for complete documentation.
@@ -1,54 +0,0 @@
1
- ---
2
- name: Read from stdin
3
- ---
4
-
5
- For CLI tools, it's often useful to read from `stdin`. In Bun, the `console` object is an `AsyncIterable` that yields lines from `stdin`.
6
-
7
- ```ts#index.ts
8
- const prompt = "Type something: ";
9
- process.stdout.write(prompt);
10
- for await (const line of console) {
11
- console.log(`You typed: ${line}`);
12
- process.stdout.write(prompt);
13
- }
14
- ```
15
-
16
- ---
17
-
18
- Running this file results in a never-ending interactive prompt that echoes whatever the user types.
19
-
20
- ```sh
21
- $ bun run index.ts
22
- Type something: hello
23
- You typed: hello
24
- Type something: hello again
25
- You typed: hello again
26
- ```
27
-
28
- ---
29
-
30
- Bun also exposes stdin as a `BunFile` via `Bun.stdin`. This is useful for incrementally reading large inputs that are piped into the `bun` process.
31
-
32
- There is no guarantee that the chunks will be split line-by-line.
33
-
34
- ```ts#stdin.ts
35
- for await (const chunk of Bun.stdin.stream()) {
36
- // chunk is Uint8Array
37
- // this converts it to text (assumes ASCII encoding)
38
- const chunkText = Buffer.from(chunk).toString();
39
- console.log(`Chunk: ${chunkText}`);
40
- }
41
- ```
42
-
43
- ---
44
-
45
- This will print the input that is piped into the `bun` process.
46
-
47
- ```sh
48
- $ echo "hello" | bun run stdin.ts
49
- Chunk: hello
50
- ```
51
-
52
- ---
53
-
54
- See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
@@ -1,28 +0,0 @@
1
- ---
2
- name: Read a file to an ArrayBuffer
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.arrayBuffer()` to read the file as an `ArrayBuffer`.
6
-
7
- ```ts
8
- const path = "/path/to/package.json";
9
- const file = Bun.file(path);
10
-
11
- const buffer = await file.arrayBuffer();
12
- ```
13
-
14
- ---
15
-
16
- The binary content in the `ArrayBuffer` can then be read as a typed array, such as `Int8Array`. For `Uint8Array`, use [`.bytes()`](./uint8array).
17
-
18
- ```ts
19
- const buffer = await file.arrayBuffer();
20
- const bytes = new Int8Array(buffer);
21
-
22
- bytes[0];
23
- bytes.length;
24
- ```
25
-
26
- ---
27
-
28
- Refer to the [Typed arrays](https://bun.com/docs/api/binary-data#typedarray) docs for more information on working with typed arrays in Bun.
@@ -1,19 +0,0 @@
1
- ---
2
- name: Read a file to a Buffer
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats.
6
-
7
- To read the file into a `Buffer` instance, first use `.arrayBuffer()` to consume the file as an `ArrayBuffer`, then use `Buffer.from()` to create a `Buffer` from the `ArrayBuffer`.
8
-
9
- ```ts
10
- const path = "/path/to/package.json";
11
- const file = Bun.file(path);
12
-
13
- const arrbuf = await file.arrayBuffer();
14
- const buffer = Buffer.from(arrbuf);
15
- ```
16
-
17
- ---
18
-
19
- Refer to [Binary data > Buffer](https://bun.com/docs/api/binary-data#buffer) for more information on working with `Buffer` and other binary data formats in Bun.
@@ -1,16 +0,0 @@
1
- ---
2
- name: Check if a file exists
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. Use the `.exists()` method to check if a file exists at the given path.
6
-
7
- ```ts
8
- const path = "/path/to/package.json";
9
- const file = Bun.file(path);
10
-
11
- await file.exists(); // boolean;
12
- ```
13
-
14
- ---
15
-
16
- Refer to [API > File I/O](https://bun.com/docs/api/file-io) for more information on working with `BunFile`.
@@ -1,17 +0,0 @@
1
- ---
2
- name: Read a JSON file
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.json()` to read and parse the contents of a `.json` file as a plain object.
6
-
7
- The MIME type of the `BunFile` will be set accordingly.
8
-
9
- ```ts
10
- const path = "/path/to/package.json";
11
- const file = Bun.file(path);
12
-
13
- const contents = await file.json();
14
- // { name: "my-package" }
15
-
16
- file.type; // => "application/json;charset=utf-8";
17
- ```
@@ -1,20 +0,0 @@
1
- ---
2
- name: Get the MIME type of a file
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob`, so use the `.type` property to read the MIME type.
6
-
7
- ```ts
8
- const file = Bun.file("./package.json");
9
- file.type; // application/json
10
-
11
- const file = Bun.file("./index.html");
12
- file.type; // text/html
13
-
14
- const file = Bun.file("./image.png");
15
- file.type; // image/png
16
- ```
17
-
18
- ---
19
-
20
- Refer to [API > File I/O](https://bun.com/docs/api/file-io) for more information on working with `BunFile`.
@@ -1,26 +0,0 @@
1
- ---
2
- name: Read a file as a ReadableStream
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.stream()` to consume the file incrementally as a `ReadableStream`.
6
-
7
- ```ts
8
- const path = "/path/to/package.json";
9
- const file = Bun.file(path);
10
-
11
- const stream = file.stream();
12
- ```
13
-
14
- ---
15
-
16
- The chunks of the stream can be consumed as an [async iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_async_iterator_and_async_iterable_protocols) using `for await`.
17
-
18
- ```ts
19
- for await (const chunk of stream) {
20
- chunk; // => Uint8Array
21
- }
22
- ```
23
-
24
- ---
25
-
26
- Refer to the [Streams](https://bun.com/docs/api/streams) documentation for more information on working with streams in Bun.
@@ -1,22 +0,0 @@
1
- ---
2
- name: Read a file as a string
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats. Use `.text()` to read the contents as a string.
6
-
7
- ```ts
8
- const path = "/path/to/file.txt";
9
- const file = Bun.file(path);
10
-
11
- const text = await file.text();
12
- // string
13
- ```
14
-
15
- ---
16
-
17
- Any relative paths will be resolved relative to the project root (the nearest directory containing a `package.json` file).
18
-
19
- ```ts
20
- const path = "./file.txt";
21
- const file = Bun.file(path);
22
- ```
@@ -1,21 +0,0 @@
1
- ---
2
- name: Read a file to a Uint8Array
3
- ---
4
-
5
- The `Bun.file()` function accepts a path and returns a `BunFile` instance. The `BunFile` class extends `Blob` and allows you to lazily read the file in a variety of formats.
6
-
7
- To read the file into a `Uint8Array` instance, retrieve the contents of the `BunFile` with `.bytes()`.
8
-
9
- ```ts
10
- const path = "/path/to/package.json";
11
- const file = Bun.file(path);
12
-
13
- const byteArray = await file.bytes();
14
-
15
- byteArray[0]; // first byteArray
16
- byteArray.length; // length of byteArray
17
- ```
18
-
19
- ---
20
-
21
- Refer to [API > Binary data > Typed arrays](https://bun.com/docs/api/binary-data#typedarray) for more information on working with `Uint8Array` and other binary data formats in Bun.
@@ -1,68 +0,0 @@
1
- ---
2
- name: Watch a directory for changes
3
- ---
4
-
5
- Bun implements the `node:fs` module, including the `fs.watch` function for listening for file system changes.
6
-
7
- This code block listens for changes to files in the current directory. By default this operation is _shallow_, meaning that changes to files in subdirectories will not be detected.
8
-
9
- ```ts
10
- import { watch } from "fs";
11
-
12
- const watcher = watch(import.meta.dir, (event, filename) => {
13
- console.log(`Detected ${event} in ${filename}`);
14
- });
15
- ```
16
-
17
- ---
18
-
19
- To listen to changes in subdirectories, pass the `recursive: true` option to `fs.watch`.
20
-
21
- ```ts
22
- import { watch } from "fs";
23
-
24
- const watcher = watch(
25
- import.meta.dir,
26
- { recursive: true },
27
- (event, relativePath) => {
28
- console.log(`Detected ${event} in ${relativePath}`);
29
- },
30
- );
31
- ```
32
-
33
- ---
34
-
35
- Using the `node:fs/promises` module, you can listen for changes using `for await...of` instead of a callback.
36
-
37
- ```ts
38
- import { watch } from "fs/promises";
39
-
40
- const watcher = watch(import.meta.dir);
41
- for await (const event of watcher) {
42
- console.log(`Detected ${event.eventType} in ${event.filename}`);
43
- }
44
- ```
45
-
46
- ---
47
-
48
- To stop listening for changes, call `watcher.close()`. It's common to do this when the process receives a `SIGINT` signal, such as when the user presses Ctrl-C.
49
-
50
- ```ts
51
- import { watch } from "fs";
52
-
53
- const watcher = watch(import.meta.dir, (event, filename) => {
54
- console.log(`Detected ${event} in ${filename}`);
55
- });
56
-
57
- process.on("SIGINT", () => {
58
- // close watcher when Ctrl-C is pressed
59
- console.log("Closing watcher...");
60
- watcher.close();
61
-
62
- process.exit(0);
63
- });
64
- ```
65
-
66
- ---
67
-
68
- Refer to [API > Binary data > Typed arrays](https://bun.com/docs/api/binary-data#typedarray) for more information on working with `Uint8Array` and other binary data formats in Bun.