bun-types 1.3.2-canary.20251105T140650 → 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 (308) hide show
  1. package/docs/README.md +28 -0
  2. package/package.json +1 -1
  3. package/docs/api/binary-data.md +0 -1038
  4. package/docs/api/cc.md +0 -197
  5. package/docs/api/color.md +0 -262
  6. package/docs/api/console.md +0 -57
  7. package/docs/api/cookie.md +0 -449
  8. package/docs/api/dns.md +0 -110
  9. package/docs/api/fetch.md +0 -463
  10. package/docs/api/ffi.md +0 -557
  11. package/docs/api/file-io.md +0 -366
  12. package/docs/api/file-system-router.md +0 -112
  13. package/docs/api/file.md +0 -19
  14. package/docs/api/glob.md +0 -178
  15. package/docs/api/globals.md +0 -387
  16. package/docs/api/hashing.md +0 -319
  17. package/docs/api/html-rewriter.md +0 -334
  18. package/docs/api/http.md +0 -1408
  19. package/docs/api/import-meta.md +0 -69
  20. package/docs/api/node-api.md +0 -14
  21. package/docs/api/redis.md +0 -597
  22. package/docs/api/s3.md +0 -850
  23. package/docs/api/secrets.md +0 -319
  24. package/docs/api/semver.md +0 -52
  25. package/docs/api/spawn.md +0 -582
  26. package/docs/api/sql.md +0 -1374
  27. package/docs/api/sqlite.md +0 -694
  28. package/docs/api/streams.md +0 -230
  29. package/docs/api/tcp.md +0 -221
  30. package/docs/api/transpiler.md +0 -276
  31. package/docs/api/udp.md +0 -123
  32. package/docs/api/utils.md +0 -891
  33. package/docs/api/websockets.md +0 -573
  34. package/docs/api/workers.md +0 -322
  35. package/docs/api/yaml.md +0 -668
  36. package/docs/benchmarks.md +0 -120
  37. package/docs/bun-flavored-toml.md +0 -42
  38. package/docs/bundler/css.md +0 -1028
  39. package/docs/bundler/css_modules.md +0 -145
  40. package/docs/bundler/executables.md +0 -626
  41. package/docs/bundler/fullstack.md +0 -418
  42. package/docs/bundler/hmr.md +0 -234
  43. package/docs/bundler/html.md +0 -349
  44. package/docs/bundler/index.md +0 -1735
  45. package/docs/bundler/intro.md +0 -75
  46. package/docs/bundler/loaders.md +0 -410
  47. package/docs/bundler/macros.md +0 -329
  48. package/docs/bundler/plugins.md +0 -449
  49. package/docs/bundler/vs-esbuild.md +0 -1127
  50. package/docs/cli/add.md +0 -173
  51. package/docs/cli/bun-completions.md +0 -3
  52. package/docs/cli/bun-create.md +0 -338
  53. package/docs/cli/bun-install.md +0 -349
  54. package/docs/cli/bun-upgrade.md +0 -39
  55. package/docs/cli/bunx.md +0 -89
  56. package/docs/cli/filter.md +0 -90
  57. package/docs/cli/info.md +0 -65
  58. package/docs/cli/init.md +0 -85
  59. package/docs/cli/install.md +0 -344
  60. package/docs/cli/link.md +0 -40
  61. package/docs/cli/outdated.md +0 -90
  62. package/docs/cli/patch-commit.md +0 -11
  63. package/docs/cli/pm.md +0 -285
  64. package/docs/cli/publish.md +0 -120
  65. package/docs/cli/remove.md +0 -7
  66. package/docs/cli/run.md +0 -261
  67. package/docs/cli/test.md +0 -397
  68. package/docs/cli/unlink.md +0 -9
  69. package/docs/cli/update.md +0 -129
  70. package/docs/cli/why.md +0 -67
  71. package/docs/contributing/upgrading-webkit.md +0 -57
  72. package/docs/ecosystem/elysia.md +0 -24
  73. package/docs/ecosystem/express.md +0 -37
  74. package/docs/ecosystem/hono.md +0 -18
  75. package/docs/ecosystem/react.md +0 -65
  76. package/docs/ecosystem/stric.md +0 -38
  77. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  78. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  79. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  80. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  81. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  82. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  83. package/docs/guides/binary/blob-to-dataview.md +0 -14
  84. package/docs/guides/binary/blob-to-stream.md +0 -14
  85. package/docs/guides/binary/blob-to-string.md +0 -15
  86. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  87. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  88. package/docs/guides/binary/buffer-to-blob.md +0 -14
  89. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  90. package/docs/guides/binary/buffer-to-string.md +0 -25
  91. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  92. package/docs/guides/binary/dataview-to-string.md +0 -15
  93. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  94. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  95. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  96. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  97. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  98. package/docs/guides/binary/typedarray-to-string.md +0 -16
  99. package/docs/guides/deployment/railway.md +0 -157
  100. package/docs/guides/ecosystem/astro.md +0 -72
  101. package/docs/guides/ecosystem/discordjs.md +0 -77
  102. package/docs/guides/ecosystem/docker.md +0 -140
  103. package/docs/guides/ecosystem/drizzle.md +0 -185
  104. package/docs/guides/ecosystem/edgedb.md +0 -228
  105. package/docs/guides/ecosystem/elysia.md +0 -31
  106. package/docs/guides/ecosystem/express.md +0 -40
  107. package/docs/guides/ecosystem/hono.md +0 -39
  108. package/docs/guides/ecosystem/mongoose.md +0 -87
  109. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  110. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  111. package/docs/guides/ecosystem/nextjs.md +0 -49
  112. package/docs/guides/ecosystem/nuxt.md +0 -56
  113. package/docs/guides/ecosystem/pm2.md +0 -57
  114. package/docs/guides/ecosystem/prisma.md +0 -141
  115. package/docs/guides/ecosystem/qwik.md +0 -107
  116. package/docs/guides/ecosystem/react.md +0 -50
  117. package/docs/guides/ecosystem/remix.md +0 -78
  118. package/docs/guides/ecosystem/render.md +0 -79
  119. package/docs/guides/ecosystem/sentry.md +0 -52
  120. package/docs/guides/ecosystem/solidstart.md +0 -58
  121. package/docs/guides/ecosystem/ssr-react.md +0 -51
  122. package/docs/guides/ecosystem/stric.md +0 -55
  123. package/docs/guides/ecosystem/sveltekit.md +0 -125
  124. package/docs/guides/ecosystem/systemd.md +0 -113
  125. package/docs/guides/ecosystem/vite.md +0 -71
  126. package/docs/guides/html-rewriter/extract-links.md +0 -68
  127. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  128. package/docs/guides/http/cluster.md +0 -66
  129. package/docs/guides/http/fetch-unix.md +0 -33
  130. package/docs/guides/http/fetch.md +0 -24
  131. package/docs/guides/http/file-uploads.md +0 -94
  132. package/docs/guides/http/hot.md +0 -26
  133. package/docs/guides/http/proxy.md +0 -24
  134. package/docs/guides/http/server.md +0 -46
  135. package/docs/guides/http/simple.md +0 -18
  136. package/docs/guides/http/stream-file.md +0 -48
  137. package/docs/guides/http/stream-iterator.md +0 -47
  138. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  139. package/docs/guides/http/tls.md +0 -30
  140. package/docs/guides/install/add-dev.md +0 -26
  141. package/docs/guides/install/add-git.md +0 -36
  142. package/docs/guides/install/add-optional.md +0 -25
  143. package/docs/guides/install/add-peer.md +0 -43
  144. package/docs/guides/install/add-tarball.md +0 -33
  145. package/docs/guides/install/add.md +0 -42
  146. package/docs/guides/install/azure-artifacts.md +0 -73
  147. package/docs/guides/install/cicd.md +0 -41
  148. package/docs/guides/install/custom-registry.md +0 -30
  149. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  150. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  151. package/docs/guides/install/jfrog-artifactory.md +0 -28
  152. package/docs/guides/install/npm-alias.md +0 -23
  153. package/docs/guides/install/registry-scope.md +0 -38
  154. package/docs/guides/install/trusted.md +0 -46
  155. package/docs/guides/install/workspaces.md +0 -70
  156. package/docs/guides/install/yarnlock.md +0 -44
  157. package/docs/guides/process/argv.md +0 -58
  158. package/docs/guides/process/ctrl-c.md +0 -16
  159. package/docs/guides/process/ipc.md +0 -66
  160. package/docs/guides/process/nanoseconds.md +0 -13
  161. package/docs/guides/process/os-signals.md +0 -39
  162. package/docs/guides/process/spawn-stderr.md +0 -31
  163. package/docs/guides/process/spawn-stdout.md +0 -26
  164. package/docs/guides/process/spawn.md +0 -41
  165. package/docs/guides/process/stdin.md +0 -54
  166. package/docs/guides/read-file/arraybuffer.md +0 -28
  167. package/docs/guides/read-file/buffer.md +0 -19
  168. package/docs/guides/read-file/exists.md +0 -16
  169. package/docs/guides/read-file/json.md +0 -17
  170. package/docs/guides/read-file/mime.md +0 -20
  171. package/docs/guides/read-file/stream.md +0 -26
  172. package/docs/guides/read-file/string.md +0 -22
  173. package/docs/guides/read-file/uint8array.md +0 -21
  174. package/docs/guides/read-file/watch.md +0 -68
  175. package/docs/guides/runtime/build-time-constants.md +0 -293
  176. package/docs/guides/runtime/cicd.md +0 -43
  177. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  178. package/docs/guides/runtime/define-constant.md +0 -145
  179. package/docs/guides/runtime/delete-directory.md +0 -37
  180. package/docs/guides/runtime/delete-file.md +0 -19
  181. package/docs/guides/runtime/heap-snapshot.md +0 -26
  182. package/docs/guides/runtime/import-html.md +0 -15
  183. package/docs/guides/runtime/import-json.md +0 -44
  184. package/docs/guides/runtime/import-toml.md +0 -30
  185. package/docs/guides/runtime/import-yaml.md +0 -102
  186. package/docs/guides/runtime/read-env.md +0 -32
  187. package/docs/guides/runtime/set-env.md +0 -47
  188. package/docs/guides/runtime/shell.md +0 -40
  189. package/docs/guides/runtime/timezone.md +0 -35
  190. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  191. package/docs/guides/runtime/typescript.md +0 -49
  192. package/docs/guides/runtime/vscode-debugger.md +0 -47
  193. package/docs/guides/runtime/web-debugger.md +0 -82
  194. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  195. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  196. package/docs/guides/streams/node-readable-to-json.md +0 -12
  197. package/docs/guides/streams/node-readable-to-string.md +0 -12
  198. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  199. package/docs/guides/streams/to-array.md +0 -14
  200. package/docs/guides/streams/to-arraybuffer.md +0 -14
  201. package/docs/guides/streams/to-blob.md +0 -14
  202. package/docs/guides/streams/to-buffer.md +0 -15
  203. package/docs/guides/streams/to-json.md +0 -14
  204. package/docs/guides/streams/to-string.md +0 -14
  205. package/docs/guides/streams/to-typedarray.md +0 -22
  206. package/docs/guides/test/bail.md +0 -22
  207. package/docs/guides/test/coverage-threshold.md +0 -60
  208. package/docs/guides/test/coverage.md +0 -44
  209. package/docs/guides/test/happy-dom.md +0 -68
  210. package/docs/guides/test/migrate-from-jest.md +0 -143
  211. package/docs/guides/test/mock-clock.md +0 -48
  212. package/docs/guides/test/mock-functions.md +0 -68
  213. package/docs/guides/test/rerun-each.md +0 -14
  214. package/docs/guides/test/run-tests.md +0 -111
  215. package/docs/guides/test/skip-tests.md +0 -39
  216. package/docs/guides/test/snapshot.md +0 -95
  217. package/docs/guides/test/spy-on.md +0 -46
  218. package/docs/guides/test/svelte-test.md +0 -120
  219. package/docs/guides/test/testing-library.md +0 -92
  220. package/docs/guides/test/timeout.md +0 -15
  221. package/docs/guides/test/todo-tests.md +0 -67
  222. package/docs/guides/test/update-snapshots.md +0 -46
  223. package/docs/guides/test/watch-mode.md +0 -19
  224. package/docs/guides/util/base64.md +0 -15
  225. package/docs/guides/util/deep-equals.md +0 -39
  226. package/docs/guides/util/deflate.md +0 -18
  227. package/docs/guides/util/detect-bun.md +0 -23
  228. package/docs/guides/util/entrypoint.md +0 -17
  229. package/docs/guides/util/escape-html.md +0 -22
  230. package/docs/guides/util/file-url-to-path.md +0 -14
  231. package/docs/guides/util/gzip.md +0 -18
  232. package/docs/guides/util/hash-a-password.md +0 -54
  233. package/docs/guides/util/import-meta-dir.md +0 -13
  234. package/docs/guides/util/import-meta-file.md +0 -13
  235. package/docs/guides/util/import-meta-path.md +0 -13
  236. package/docs/guides/util/javascript-uuid.md +0 -23
  237. package/docs/guides/util/main.md +0 -32
  238. package/docs/guides/util/path-to-file-url.md +0 -14
  239. package/docs/guides/util/sleep.md +0 -22
  240. package/docs/guides/util/version.md +0 -21
  241. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  242. package/docs/guides/websocket/compression.md +0 -31
  243. package/docs/guides/websocket/context.md +0 -77
  244. package/docs/guides/websocket/pubsub.md +0 -41
  245. package/docs/guides/websocket/simple.md +0 -33
  246. package/docs/guides/write-file/append.md +0 -52
  247. package/docs/guides/write-file/basic.md +0 -44
  248. package/docs/guides/write-file/blob.md +0 -28
  249. package/docs/guides/write-file/cat.md +0 -17
  250. package/docs/guides/write-file/file-cp.md +0 -16
  251. package/docs/guides/write-file/filesink.md +0 -52
  252. package/docs/guides/write-file/response.md +0 -17
  253. package/docs/guides/write-file/stdout.md +0 -21
  254. package/docs/guides/write-file/stream.md +0 -17
  255. package/docs/guides/write-file/unlink.md +0 -16
  256. package/docs/index.md +0 -77
  257. package/docs/install/audit.md +0 -57
  258. package/docs/install/cache.md +0 -59
  259. package/docs/install/catalogs.md +0 -298
  260. package/docs/install/index.md +0 -248
  261. package/docs/install/isolated.md +0 -197
  262. package/docs/install/lifecycle.md +0 -46
  263. package/docs/install/lockfile.md +0 -58
  264. package/docs/install/npmrc.md +0 -105
  265. package/docs/install/overrides.md +0 -73
  266. package/docs/install/patch.md +0 -59
  267. package/docs/install/registries.md +0 -30
  268. package/docs/install/security-scanner-api.md +0 -81
  269. package/docs/install/workspaces.md +0 -114
  270. package/docs/installation.md +0 -327
  271. package/docs/project/asan.md +0 -124
  272. package/docs/project/benchmarking.md +0 -203
  273. package/docs/project/bindgen.md +0 -225
  274. package/docs/project/building-windows.md +0 -162
  275. package/docs/project/contributing.md +0 -347
  276. package/docs/project/internals/build-process-for-ci.md +0 -75
  277. package/docs/project/licensing.md +0 -73
  278. package/docs/project/roadmap.md +0 -87
  279. package/docs/quickstart.md +0 -157
  280. package/docs/runtime/autoimport.md +0 -94
  281. package/docs/runtime/bun-apis.md +0 -207
  282. package/docs/runtime/bunfig.md +0 -772
  283. package/docs/runtime/debugger.md +0 -325
  284. package/docs/runtime/env.md +0 -253
  285. package/docs/runtime/hot.md +0 -145
  286. package/docs/runtime/index.md +0 -312
  287. package/docs/runtime/jsx.md +0 -385
  288. package/docs/runtime/loaders.md +0 -130
  289. package/docs/runtime/modules.md +0 -320
  290. package/docs/runtime/nodejs-apis.md +0 -463
  291. package/docs/runtime/plugins.md +0 -561
  292. package/docs/runtime/shell.md +0 -605
  293. package/docs/runtime/typescript.md +0 -139
  294. package/docs/runtime/web-apis.md +0 -128
  295. package/docs/test/configuration.md +0 -154
  296. package/docs/test/coverage.md +0 -142
  297. package/docs/test/discovery.md +0 -85
  298. package/docs/test/dom.md +0 -75
  299. package/docs/test/examples/concurrent-test-glob.md +0 -132
  300. package/docs/test/hot.md +0 -15
  301. package/docs/test/lifecycle.md +0 -81
  302. package/docs/test/mocks.md +0 -313
  303. package/docs/test/reporters.md +0 -117
  304. package/docs/test/runtime-behavior.md +0 -95
  305. package/docs/test/snapshots.md +0 -68
  306. package/docs/test/time.md +0 -126
  307. package/docs/test/writing.md +0 -825
  308. package/docs/typescript.md +0 -53
@@ -1,37 +0,0 @@
1
- Projects that use Express and other major Node.js HTTP libraries should work out of the box.
2
-
3
- {% callout %}
4
- If you run into bugs, [please file an issue](https://bun.com/issues) _in Bun's repo_, not the library. It is Bun's responsibility to address Node.js compatibility issues.
5
- {% /callout %}
6
-
7
- ```ts
8
- import express from "express";
9
-
10
- const app = express();
11
- const port = 8080;
12
-
13
- app.get("/", (req, res) => {
14
- res.send("Hello World!");
15
- });
16
-
17
- app.listen(port, () => {
18
- console.log(`Listening on port ${port}...`);
19
- });
20
- ```
21
-
22
- Bun implements the [`node:http`](https://nodejs.org/api/http.html) and [`node:https`](https://nodejs.org/api/https.html) modules that these libraries rely on. These modules can also be used directly, though [`Bun.serve`](https://bun.com/docs/api/http) is recommended for most use cases.
23
-
24
- {% callout %}
25
- **Note** — Refer to the [Runtime > Node.js APIs](https://bun.com/docs/runtime/nodejs-apis#node-http) page for more detailed compatibility information.
26
- {% /callout %}
27
-
28
- ```ts
29
- import * as http from "node:http";
30
-
31
- http
32
- .createServer(function (req, res) {
33
- res.write("Hello World!");
34
- res.end();
35
- })
36
- .listen(8080);
37
- ```
@@ -1,18 +0,0 @@
1
- [Hono](https://github.com/honojs/hono) is a lightweight ultrafast web framework designed for the edge.
2
-
3
- ```ts
4
- import { Hono } from "hono";
5
- const app = new Hono();
6
-
7
- app.get("/", c => c.text("Hono!"));
8
-
9
- export default app;
10
- ```
11
-
12
- Get started with `bun create` or follow Hono's [Bun quickstart](https://hono.dev/getting-started/bun).
13
-
14
- ```bash
15
- $ bun create hono ./myapp
16
- $ cd myapp
17
- $ bun run start
18
- ```
@@ -1,65 +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
- Bun implements special logging for JSX to make debugging easier.
16
-
17
- ```bash
18
- $ bun run react.tsx
19
- <Component message="Hello world!" />
20
- ```
21
-
22
- ### Prop punning
23
-
24
- 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.
25
-
26
- ```tsx
27
- function Div(props: {className: string;}) {
28
- const {className} = props;
29
-
30
- // without punning
31
- return <div className={className} />;
32
- // with punning
33
- return <div {className} />;
34
- }
35
- ```
36
-
37
- ### Server-side rendering
38
-
39
- To server-side render (SSR) React in an [HTTP server](https://bun.com/docs/api/http):
40
-
41
- ```tsx#ssr.tsx
42
- import {renderToReadableStream} from 'react-dom/server';
43
-
44
- function Component(props: {message: string}) {
45
- return (
46
- <body>
47
- <h1 style={{color: 'red'}}>{props.message}</h1>
48
- </body>
49
- );
50
- }
51
-
52
- Bun.serve({
53
- port: 4000,
54
- async fetch() {
55
- const stream = await renderToReadableStream(
56
- <Component message="Hello from server!" />
57
- );
58
- return new Response(stream, {
59
- headers: {'Content-Type': 'text/html'},
60
- });
61
- },
62
- });
63
- ```
64
-
65
- React `18.3` and later includes an [SSR optimization](https://github.com/facebook/react/pull/25597) that takes advantage of Bun's "direct" `ReadableStream` implementation.
@@ -1,38 +0,0 @@
1
- [Stric](https://github.com/bunsvr) is a minimalist, fast web framework for Bun.
2
-
3
- ```ts#index.ts
4
- import { Router } from '@stricjs/router';
5
-
6
- // Export the fetch handler and serve with Bun
7
- export default new Router()
8
- // Return 'Hi' on every request
9
- .get('/', () => new Response('Hi'));
10
- ```
11
-
12
- Stric provides support for [ArrowJS](https://www.arrow-js.com), a library for building reactive interfaces.
13
-
14
- {% codetabs %}
15
-
16
- ```ts#src/App.ts
17
- import { html } from '@stricjs/arrow/utils';
18
-
19
- // Code inside this function can use web APIs
20
- export function render() {
21
- // Render a <p> element with text 'Hi'
22
- html`<p>Hi</p>`;
23
- };
24
-
25
- // Set the path to handle
26
- export const path = '/';
27
- ```
28
-
29
- ```ts#index.ts
30
- import { PageRouter } from '@stricjs/arrow';
31
-
32
- // Create a page router, build and serve directly
33
- new PageRouter().serve();
34
- ```
35
-
36
- {% /codetabs %}
37
-
38
- For more info, see Stric's [documentation](https://stricjs.gitbook.io/docs).
@@ -1,27 +0,0 @@
1
- ---
2
- name: Convert an ArrayBuffer to an array of numbers
3
- ---
4
-
5
- To retrieve the contents of an `ArrayBuffer` as an array of numbers, create a [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) over of the buffer. and use the [`Array.from()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from) method to convert it to an array.
6
-
7
- ```ts
8
- const buf = new ArrayBuffer(64);
9
- const arr = new Uint8Array(buf);
10
- arr.length; // 64
11
- arr[0]; // 0 (instantiated with all zeros)
12
- ```
13
-
14
- ---
15
-
16
- The `Uint8Array` class supports array indexing and iteration. However if you wish to convert the instance to a regular `Array`, use `Array.from()`. (This will likely be slower than using the `Uint8Array` directly.)
17
-
18
- ```ts
19
- const buf = new ArrayBuffer(64);
20
- const uintArr = new Uint8Array(buf);
21
- const regularArr = Array.from(uintArr);
22
- // number[]
23
- ```
24
-
25
- ---
26
-
27
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,24 +0,0 @@
1
- ---
2
- name: Convert an ArrayBuffer to a Blob
3
- ---
4
-
5
- A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) can be constructed from an array of "chunks", where each chunk is a string, binary data structure, or another `Blob`.
6
-
7
- ```ts
8
- const buf = new ArrayBuffer(64);
9
- const blob = new Blob([buf]);
10
- ```
11
-
12
- ---
13
-
14
- By default the `type` of the resulting `Blob` will be unset. This can be set manually.
15
-
16
- ```ts
17
- const buf = new ArrayBuffer(64);
18
- const blob = new Blob([buf], { type: "application/octet-stream" });
19
- blob.type; // => "application/octet-stream"
20
- ```
21
-
22
- ---
23
-
24
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,25 +0,0 @@
1
- ---
2
- name: Convert an ArrayBuffer to a Buffer
3
- ---
4
-
5
- The Node.js [`Buffer`](https://nodejs.org/api/buffer.html) API predates the introduction of `ArrayBuffer` into the JavaScript language. Bun implements both.
6
-
7
- Use the static `Buffer.from()` method to create a `Buffer` from an `ArrayBuffer`.
8
-
9
- ```ts
10
- const arrBuffer = new ArrayBuffer(64);
11
- const nodeBuffer = Buffer.from(arrBuffer);
12
- ```
13
-
14
- ---
15
-
16
- To create a `Buffer` that only views a portion of the underlying buffer, pass the offset and length to the constructor.
17
-
18
- ```ts
19
- const arrBuffer = new ArrayBuffer(64);
20
- const nodeBuffer = Buffer.from(arrBuffer, 0, 16); // view first 16 bytes
21
- ```
22
-
23
- ---
24
-
25
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,15 +0,0 @@
1
- ---
2
- name: Convert an ArrayBuffer to a string
3
- ---
4
-
5
- Bun implements the Web-standard [`TextDecoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder) class for converting between binary data types and strings.
6
-
7
- ```ts
8
- const buf = new ArrayBuffer(64);
9
- const decoder = new TextDecoder();
10
- const str = decoder.decode(buf);
11
- ```
12
-
13
- ---
14
-
15
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,39 +0,0 @@
1
- ---
2
- name: Convert an ArrayBuffer to a Uint8Array
3
- ---
4
-
5
- A `Uint8Array` is a _typed array_, meaning it is a mechanism for viewing the data in an underlying `ArrayBuffer`.
6
-
7
- ```ts
8
- const buffer = new ArrayBuffer(64);
9
- const arr = new Uint8Array(buffer);
10
- ```
11
-
12
- ---
13
-
14
- Instances of other typed arrays can be created similarly.
15
-
16
- ```ts
17
- const buffer = new ArrayBuffer(64);
18
-
19
- const arr1 = new Uint8Array(buffer);
20
- const arr2 = new Uint16Array(buffer);
21
- const arr3 = new Uint32Array(buffer);
22
- const arr4 = new Float32Array(buffer);
23
- const arr5 = new Float64Array(buffer);
24
- const arr6 = new BigInt64Array(buffer);
25
- const arr7 = new BigUint64Array(buffer);
26
- ```
27
-
28
- ---
29
-
30
- To create a typed array that only views a portion of the underlying buffer, pass the offset and length to the constructor.
31
-
32
- ```ts
33
- const buffer = new ArrayBuffer(64);
34
- const arr = new Uint8Array(buffer, 0, 16); // view first 16 bytes
35
- ```
36
-
37
- ---
38
-
39
- See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Blob to an ArrayBuffer
3
- ---
4
-
5
- The [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) class provides a number of methods for consuming its contents in different formats, including `.arrayBuffer()`.
6
-
7
- ```ts
8
- const blob = new Blob(["hello world"]);
9
- const buf = await blob.arrayBuffer();
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Blob to a DataView
3
- ---
4
-
5
- The [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) class provides a number of methods for consuming its contents in different formats. This snippets reads the contents to an `ArrayBuffer`, then creates a `DataView` from the buffer.
6
-
7
- ```ts
8
- const blob = new Blob(["hello world"]);
9
- const arr = new DataView(await blob.arrayBuffer());
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Blob to a ReadableStream
3
- ---
4
-
5
- The [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) class provides a number of methods for consuming its contents in different formats, including `.stream()`. This returns `Promise<ReadableStream>`.
6
-
7
- ```ts
8
- const blob = new Blob(["hello world"]);
9
- const stream = await blob.stream();
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,15 +0,0 @@
1
- ---
2
- name: Convert a Blob to a string
3
- ---
4
-
5
- The [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) class provides a number of methods for consuming its contents in different formats, including `.text()`.
6
-
7
- ```ts
8
- const blob = new Blob(["hello world"]);
9
- const str = await blob.text();
10
- // => "hello world"
11
- ```
12
-
13
- ---
14
-
15
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Blob to a Uint8Array
3
- ---
4
-
5
- The [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) class provides a number of methods for consuming its contents in different formats. This snippets reads the contents to an `ArrayBuffer`, then creates a `Uint8Array` from the buffer.
6
-
7
- ```ts
8
- const blob = new Blob(["hello world"]);
9
- const arr = new Uint8Array(await blob.arrayBuffer());
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Buffer to an ArrayBuffer
3
- ---
4
-
5
- The Node.js [`Buffer`](https://nodejs.org/api/buffer.html) class provides a way to view and manipulate data in an underlying `ArrayBuffer`, which is available via the `buffer` property.
6
-
7
- ```ts
8
- const nodeBuf = Buffer.alloc(64);
9
- const arrBuf = nodeBuf.buffer;
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Buffer to a blob
3
- ---
4
-
5
- A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) can be constructed from an array of "chunks", where each chunk is a string, binary data structure (including `Buffer`), or another `Blob`.
6
-
7
- ```ts
8
- const buf = Buffer.from("hello");
9
- const blob = new Blob([buf]);
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,41 +0,0 @@
1
- ---
2
- name: Convert a Buffer to a ReadableStream
3
- ---
4
-
5
- The naive approach to creating a [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) from a [`Buffer`](https://nodejs.org/api/buffer.html) is to use the `ReadableStream` constructor and enqueue the entire array as a single chunk. For a large buffer, this may be undesirable as this approach does not "streaming" the data in smaller chunks.
6
-
7
- ```ts
8
- const buf = Buffer.from("hello world");
9
- const stream = new ReadableStream({
10
- start(controller) {
11
- controller.enqueue(buf);
12
- controller.close();
13
- },
14
- });
15
- ```
16
-
17
- ---
18
-
19
- To stream the data in smaller chunks, first create a `Blob` instance from the `Buffer`. Then use the [`Blob.stream()`](https://developer.mozilla.org/en-US/docs/Web/API/Blob/stream) method to create a `ReadableStream` that streams the data in chunks of a specified size.
20
-
21
- ```ts
22
- const buf = Buffer.from("hello world");
23
- const blob = new Blob([buf]);
24
- const stream = blob.stream();
25
- ```
26
-
27
- ---
28
-
29
- The chunk size can be set by passing a number to the `.stream()` method.
30
-
31
- ```ts
32
- const buf = Buffer.from("hello world");
33
- const blob = new Blob([buf]);
34
-
35
- // set chunk size of 1024 bytes
36
- const stream = blob.stream(1024);
37
- ```
38
-
39
- ---
40
-
41
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,25 +0,0 @@
1
- ---
2
- name: Convert a Buffer to a string
3
- ---
4
-
5
- The [`Buffer`](https://nodejs.org/api/buffer.html) class provides a built-in `.toString()` method that converts a `Buffer` to a string.
6
-
7
- ```ts
8
- const buf = Buffer.from("hello");
9
- const str = buf.toString();
10
- // => "hello"
11
- ```
12
-
13
- ---
14
-
15
- You can optionally specify an encoding and byte range.
16
-
17
- ```ts
18
- const buf = Buffer.from("hello world!");
19
- const str = buf.toString("utf8", 0, 5);
20
- // => "hello"
21
- ```
22
-
23
- ---
24
-
25
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Buffer to a Uint8Array
3
- ---
4
-
5
- The Node.js [`Buffer`](https://nodejs.org/api/buffer.html) class extends [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), so no conversion is needed. All properties and methods on `Uint8Array` are available on `Buffer`.
6
-
7
- ```ts
8
- const buf = Buffer.alloc(64);
9
- buf instanceof Uint8Array; // => true
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,15 +0,0 @@
1
- ---
2
- name: Convert a DataView to a string
3
- ---
4
-
5
- If a [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) contains ASCII-encoded text, you can convert it to a string using the [`TextDecoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder) class.
6
-
7
- ```ts
8
- const dv: DataView = ...;
9
- const decoder = new TextDecoder();
10
- const str = decoder.decode(dv);
11
- ```
12
-
13
- ---
14
-
15
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,25 +0,0 @@
1
- ---
2
- name: Convert a Uint8Array to an ArrayBuffer
3
- ---
4
-
5
- A [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) is a _typed array_ class, meaning it is a mechanism for viewing data in an underlying `ArrayBuffer`. The underlying `ArrayBuffer` is accessible via the `buffer` property.
6
-
7
- ```ts
8
- const arr = new Uint8Array(64);
9
- arr.buffer; // => ArrayBuffer(64)
10
- ```
11
-
12
- ---
13
-
14
- The `Uint8Array` may be a view over a _subset_ of the data in the underlying `ArrayBuffer`. In this case, the `buffer` property will return the entire buffer, and the `byteOffset` and `byteLength` properties will indicate the subset.
15
-
16
- ```ts
17
- const arr = new Uint8Array(64, 16, 32);
18
- arr.buffer; // => ArrayBuffer(64)
19
- arr.byteOffset; // => 16
20
- arr.byteLength; // => 32
21
- ```
22
-
23
- ---
24
-
25
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,16 +0,0 @@
1
- ---
2
- name: Convert a Uint8Array to a Blob
3
- ---
4
-
5
- A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) can be constructed from an array of "chunks", where each chunk is a string, binary data structure (including `Uint8Array`), or another `Blob`.
6
-
7
- ```ts
8
- const arr = new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]);
9
- const blob = new Blob([arr]);
10
- console.log(await blob.text());
11
- // => "hello"
12
- ```
13
-
14
- ---
15
-
16
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Uint8Array to a Buffer
3
- ---
4
-
5
- The [`Buffer`](https://nodejs.org/api/buffer.html) class extends [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) with a number of additional methods. Use `Buffer.from()` to create a `Buffer` instance from a `Uint8Array`.
6
-
7
- ```ts
8
- const arr: Uint8Array = ...
9
- const buf = Buffer.from(arr);
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,14 +0,0 @@
1
- ---
2
- name: Convert a Uint8Array to a DataView
3
- ---
4
-
5
- A [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) is a _typed array_ class, meaning it is a mechanism for viewing data in an underlying `ArrayBuffer`. The following snippet creates a [`DataView`] instance over the same range of data as the `Uint8Array`.
6
-
7
- ```ts
8
- const arr: Uint8Array = ...
9
- const dv = new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
10
- ```
11
-
12
- ---
13
-
14
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,41 +0,0 @@
1
- ---
2
- name: Convert a Uint8Array to a ReadableStream
3
- ---
4
-
5
- The naive approach to creating a [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) from a [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) is to use the [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) constructor and enqueue the entire array as a single chunk. For larger chunks, this may be undesirable as it isn't actually "streaming" the data.
6
-
7
- ```ts
8
- const arr = new Uint8Array(64);
9
- const stream = new ReadableStream({
10
- start(controller) {
11
- controller.enqueue(arr);
12
- controller.close();
13
- },
14
- });
15
- ```
16
-
17
- ---
18
-
19
- To stream the data in smaller chunks, first create a `Blob` instance from the `Uint8Array`. Then use the [`Blob.stream()`](https://developer.mozilla.org/en-US/docs/Web/API/Blob/stream) method to create a `ReadableStream` that streams the data in chunks of a specified size.
20
-
21
- ```ts
22
- const arr = new Uint8Array(64);
23
- const blob = new Blob([arr]);
24
- const stream = blob.stream();
25
- ```
26
-
27
- ---
28
-
29
- The chunk size can be set by passing a number to the `.stream()` method.
30
-
31
- ```ts
32
- const arr = new Uint8Array(64);
33
- const blob = new Blob([arr]);
34
-
35
- // set chunk size of 1024 bytes
36
- const stream = blob.stream(1024);
37
- ```
38
-
39
- ---
40
-
41
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.
@@ -1,16 +0,0 @@
1
- ---
2
- name: Convert a Uint8Array to a string
3
- ---
4
-
5
- Bun implements the Web-standard [`TextDecoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder) class for converting from binary data types like `Uint8Array` and strings.
6
-
7
- ```ts
8
- const arr = new Uint8Array([104, 101, 108, 108, 111]);
9
- const decoder = new TextDecoder();
10
- const str = decoder.decode(arr);
11
- // => "hello"
12
- ```
13
-
14
- ---
15
-
16
- See [Docs > API > Binary Data](https://bun.com/docs/api/binary-data#conversion) for complete documentation on manipulating binary data with Bun.