bun-types 1.2.22-canary.20250831T140556 → 1.2.22-canary.20250901T140556
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.
- package/bun.d.ts +32 -0
- package/docs/api/fetch.md +1 -1
- package/docs/api/spawn.md +1 -1
- package/docs/bundler/vs-esbuild.md +3 -3
- package/docs/cli/bun-install.md +2 -3
- package/docs/cli/pm.md +1 -1
- package/docs/cli/publish.md +1 -1
- package/docs/guides/ecosystem/nuxt.md +1 -1
- package/docs/guides/install/add-peer.md +2 -2
- package/docs/guides/install/from-npm-install-to-bun-install.md +1 -1
- package/docs/guides/test/run-tests.md +3 -3
- package/docs/guides/test/snapshot.md +3 -3
- package/docs/guides/test/update-snapshots.md +1 -1
- package/docs/guides/util/version.md +1 -1
- package/docs/install/cache.md +2 -2
- package/docs/installation.md +4 -4
- package/docs/runtime/debugger.md +3 -3
- package/docs/runtime/jsx.md +59 -0
- package/docs/test/dom.md +1 -1
- package/package.json +1 -1
package/bun.d.ts
CHANGED
|
@@ -644,6 +644,38 @@ declare module "bun" {
|
|
|
644
644
|
* ```
|
|
645
645
|
*/
|
|
646
646
|
export function parse(input: string): unknown;
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* Convert a JavaScript value into a YAML string. Strings are double quoted if they contain keywords, non-printable or
|
|
650
|
+
* escaped characters, or if a YAML parser would parse them as numbers. Anchors and aliases are inferred from objects, allowing cycles.
|
|
651
|
+
*
|
|
652
|
+
* @category Utilities
|
|
653
|
+
*
|
|
654
|
+
* @param input The JavaScript value to stringify.
|
|
655
|
+
* @param replacer Currently not supported.
|
|
656
|
+
* @param space A number for how many spaces each level of indentation gets, or a string used as indentation. The number is clamped between 0 and 10, and the first 10 characters of the string are used.
|
|
657
|
+
* @returns A string containing the YAML document.
|
|
658
|
+
*
|
|
659
|
+
* @example
|
|
660
|
+
* ```ts
|
|
661
|
+
* import { YAML } from "bun";
|
|
662
|
+
*
|
|
663
|
+
* const input = {
|
|
664
|
+
* abc: "def"
|
|
665
|
+
* };
|
|
666
|
+
* console.log(YAML.stringify(input));
|
|
667
|
+
* // # output
|
|
668
|
+
* // abc: def
|
|
669
|
+
*
|
|
670
|
+
* const cycle = {};
|
|
671
|
+
* cycle.obj = cycle;
|
|
672
|
+
* console.log(YAML.stringify(cycle));
|
|
673
|
+
* // # output
|
|
674
|
+
* // &root
|
|
675
|
+
* // obj:
|
|
676
|
+
* // *root
|
|
677
|
+
*/
|
|
678
|
+
export function stringify(input: unknown, replacer?: undefined | null, space?: string | number): string;
|
|
647
679
|
}
|
|
648
680
|
|
|
649
681
|
/**
|
package/docs/api/fetch.md
CHANGED
|
@@ -336,7 +336,7 @@ This will print the request and response headers to your terminal:
|
|
|
336
336
|
```sh
|
|
337
337
|
[fetch] > HTTP/1.1 GET http://example.com/
|
|
338
338
|
[fetch] > Connection: keep-alive
|
|
339
|
-
[fetch] > User-Agent: Bun/1.2.22-canary.
|
|
339
|
+
[fetch] > User-Agent: Bun/1.2.22-canary.20250901T140556
|
|
340
340
|
[fetch] > Accept: */*
|
|
341
341
|
[fetch] > Host: example.com
|
|
342
342
|
[fetch] > Accept-Encoding: gzip, deflate, br
|
package/docs/api/spawn.md
CHANGED
|
@@ -140,7 +140,7 @@ You can read results from the subprocess via the `stdout` and `stderr` propertie
|
|
|
140
140
|
```ts
|
|
141
141
|
const proc = Bun.spawn(["bun", "--version"]);
|
|
142
142
|
const text = await proc.stdout.text();
|
|
143
|
-
console.log(text); // => "1.2.22-canary.
|
|
143
|
+
console.log(text); // => "1.2.22-canary.20250901T140556\n"
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
Configure the output stream by passing one of the following values to `stdout/stderr`:
|
|
@@ -245,8 +245,8 @@ In Bun's CLI, simple boolean flags like `--minify` do not accept an argument. Ot
|
|
|
245
245
|
---
|
|
246
246
|
|
|
247
247
|
- `--jsx-side-effects`
|
|
248
|
-
-
|
|
249
|
-
- JSX is
|
|
248
|
+
- `--jsx-side-effects`
|
|
249
|
+
- Controls whether JSX expressions are marked as `/* @__PURE__ */` for dead code elimination. Default is `false` (JSX marked as pure).
|
|
250
250
|
|
|
251
251
|
---
|
|
252
252
|
|
|
@@ -617,7 +617,7 @@ In Bun's CLI, simple boolean flags like `--minify` do not accept an argument. Ot
|
|
|
617
617
|
|
|
618
618
|
- `jsxSideEffects`
|
|
619
619
|
- `jsxSideEffects`
|
|
620
|
-
-
|
|
620
|
+
- Controls whether JSX expressions are marked as pure for dead code elimination
|
|
621
621
|
|
|
622
622
|
---
|
|
623
623
|
|
package/docs/cli/bun-install.md
CHANGED
|
@@ -230,16 +230,15 @@ $ bun install --backend copyfile
|
|
|
230
230
|
|
|
231
231
|
**`symlink`** is typically only used for `file:` dependencies (and eventually `link:`) internally. To prevent infinite loops, it skips symlinking the `node_modules` folder.
|
|
232
232
|
|
|
233
|
-
If you install with `--backend=symlink`, Node.js won't resolve node_modules of dependencies unless each dependency has its own node_modules folder or you pass `--preserve-symlinks` to `node`. See [Node.js documentation on `--preserve-symlinks`](https://nodejs.org/api/cli.html#--preserve-symlinks).
|
|
233
|
+
If you install with `--backend=symlink`, Node.js won't resolve node_modules of dependencies unless each dependency has its own node_modules folder or you pass `--preserve-symlinks` to `node` or `bun`. See [Node.js documentation on `--preserve-symlinks`](https://nodejs.org/api/cli.html#--preserve-symlinks).
|
|
234
234
|
|
|
235
235
|
```bash
|
|
236
236
|
$ rm -rf node_modules
|
|
237
237
|
$ bun install --backend symlink
|
|
238
|
+
$ bun --preserve-symlinks ./my-file.js
|
|
238
239
|
$ node --preserve-symlinks ./my-file.js # https://nodejs.org/api/cli.html#--preserve-symlinks
|
|
239
240
|
```
|
|
240
241
|
|
|
241
|
-
Bun's runtime does not currently expose an equivalent of `--preserve-symlinks`, though the code for it does exist.
|
|
242
|
-
|
|
243
242
|
## npm registry metadata
|
|
244
243
|
|
|
245
244
|
bun uses a binary format for caching NPM registry responses. This loads much faster than JSON and tends to be smaller on disk.
|
package/docs/cli/pm.md
CHANGED
|
@@ -213,7 +213,7 @@ To display current package version and help:
|
|
|
213
213
|
|
|
214
214
|
```bash
|
|
215
215
|
$ bun pm version
|
|
216
|
-
bun pm version v1.2.22-canary.
|
|
216
|
+
bun pm version v1.2.22-canary.20250901T140556 (ca7428e9)
|
|
217
217
|
Current package version: v1.0.0
|
|
218
218
|
|
|
219
219
|
Increment:
|
package/docs/cli/publish.md
CHANGED
|
@@ -9,7 +9,7 @@ $ bunx nuxi init my-nuxt-app
|
|
|
9
9
|
✔ Which package manager would you like to use?
|
|
10
10
|
bun
|
|
11
11
|
◐ Installing dependencies...
|
|
12
|
-
bun install v1.2.22-canary.
|
|
12
|
+
bun install v1.2.22-canary.20250901T140556 (16b4bf34)
|
|
13
13
|
+ @nuxt/devtools@0.8.2
|
|
14
14
|
+ nuxt@3.7.0
|
|
15
15
|
785 packages installed [2.67s]
|
|
@@ -15,7 +15,7 @@ This will add the package to `peerDependencies` in `package.json`.
|
|
|
15
15
|
```json-diff
|
|
16
16
|
{
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
+ "@types/bun": "^1.2.22-canary.
|
|
18
|
+
+ "@types/bun": "^1.2.22-canary.20250901T140556"
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
```
|
|
@@ -27,7 +27,7 @@ Running `bun install` will install peer dependencies by default, unless marked o
|
|
|
27
27
|
```json-diff
|
|
28
28
|
{
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@types/bun": "^1.2.22-canary.
|
|
30
|
+
"@types/bun": "^1.2.22-canary.20250901T140556"
|
|
31
31
|
},
|
|
32
32
|
"peerDependenciesMeta": {
|
|
33
33
|
+ "@types/bun": {
|
|
@@ -97,7 +97,7 @@ $ bun update
|
|
|
97
97
|
$ bun update @types/bun --latest
|
|
98
98
|
|
|
99
99
|
# Update a dependency to a specific version
|
|
100
|
-
$ bun update @types/bun@1.2.22-canary.
|
|
100
|
+
$ bun update @types/bun@1.2.22-canary.20250901T140556
|
|
101
101
|
|
|
102
102
|
# Update all dependencies to the latest versions
|
|
103
103
|
$ bun update --latest
|
|
@@ -21,7 +21,7 @@ Here's what the output of a typical test run looks like. In this case, there are
|
|
|
21
21
|
|
|
22
22
|
```sh
|
|
23
23
|
$ bun test
|
|
24
|
-
bun test v1.2.22-canary.
|
|
24
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
25
25
|
|
|
26
26
|
test.test.js:
|
|
27
27
|
✓ add [0.87ms]
|
|
@@ -47,7 +47,7 @@ To only run certain test files, pass a positional argument to `bun test`. The ru
|
|
|
47
47
|
|
|
48
48
|
```sh
|
|
49
49
|
$ bun test test3
|
|
50
|
-
bun test v1.2.22-canary.
|
|
50
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
51
51
|
|
|
52
52
|
test3.test.js:
|
|
53
53
|
✓ add [1.40ms]
|
|
@@ -85,7 +85,7 @@ Adding `-t add` will only run tests with "add" in the name. This works with test
|
|
|
85
85
|
|
|
86
86
|
```sh
|
|
87
87
|
$ bun test -t add
|
|
88
|
-
bun test v1.2.22-canary.
|
|
88
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
89
89
|
|
|
90
90
|
test.test.js:
|
|
91
91
|
✓ add [1.79ms]
|
|
@@ -18,7 +18,7 @@ The first time this test is executed, Bun will evaluate the value passed into `e
|
|
|
18
18
|
|
|
19
19
|
```sh
|
|
20
20
|
$ bun test test/snap
|
|
21
|
-
bun test v1.2.22-canary.
|
|
21
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
22
22
|
|
|
23
23
|
test/snap.test.ts:
|
|
24
24
|
✓ snapshot [1.48ms]
|
|
@@ -61,7 +61,7 @@ Later, when this test file is executed again, Bun will read the snapshot file an
|
|
|
61
61
|
|
|
62
62
|
```sh
|
|
63
63
|
$ bun test
|
|
64
|
-
bun test v1.2.22-canary.
|
|
64
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
65
65
|
|
|
66
66
|
test/snap.test.ts:
|
|
67
67
|
✓ snapshot [1.05ms]
|
|
@@ -78,7 +78,7 @@ To update snapshots, use the `--update-snapshots` flag.
|
|
|
78
78
|
|
|
79
79
|
```sh
|
|
80
80
|
$ bun test --update-snapshots
|
|
81
|
-
bun test v1.2.22-canary.
|
|
81
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
82
82
|
|
|
83
83
|
test/snap.test.ts:
|
|
84
84
|
✓ snapshot [0.86ms]
|
|
@@ -29,7 +29,7 @@ To regenerate snapshots, use the `--update-snapshots` flag.
|
|
|
29
29
|
|
|
30
30
|
```sh
|
|
31
31
|
$ bun test --update-snapshots
|
|
32
|
-
bun test v1.2.22-canary.
|
|
32
|
+
bun test v1.2.22-canary.20250901T140556 (9c68abdb)
|
|
33
33
|
|
|
34
34
|
test/snap.test.ts:
|
|
35
35
|
✓ snapshot [0.86ms]
|
package/docs/install/cache.md
CHANGED
|
@@ -48,12 +48,12 @@ This behavior is configurable with the `--backend` flag, which is respected by a
|
|
|
48
48
|
- **`copyfile`**: The fallback used when any of the above fail. It is the slowest option. On macOS, it uses `fcopyfile()`; on Linux it uses `copy_file_range()`.
|
|
49
49
|
- **`symlink`**: Currently used only `file:` (and eventually `link:`) dependencies. To prevent infinite loops, it skips symlinking the `node_modules` folder.
|
|
50
50
|
|
|
51
|
-
If you install with `--backend=symlink`, Node.js won't resolve node_modules of dependencies unless each dependency has its own `node_modules` folder or you pass `--preserve-symlinks` to `node`. See [Node.js documentation on `--preserve-symlinks`](https://nodejs.org/api/cli.html#--preserve-symlinks).
|
|
51
|
+
If you install with `--backend=symlink`, Node.js won't resolve node_modules of dependencies unless each dependency has its own `node_modules` folder or you pass `--preserve-symlinks` to `node` or `bun`. See [Node.js documentation on `--preserve-symlinks`](https://nodejs.org/api/cli.html#--preserve-symlinks).
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
$ bun install --backend symlink
|
|
55
55
|
$ node --preserve-symlinks ./foo.js
|
|
56
|
+
$ bun --preserve-symlinks ./foo.js
|
|
56
57
|
```
|
|
57
58
|
|
|
58
|
-
Bun's runtime does not currently expose an equivalent of `--preserve-symlinks`.
|
|
59
59
|
{% /details %}
|
package/docs/installation.md
CHANGED
|
@@ -14,7 +14,7 @@ Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. Us
|
|
|
14
14
|
```bash#macOS/Linux_(curl)
|
|
15
15
|
$ curl -fsSL https://bun.com/install | bash # for macOS, Linux, and WSL
|
|
16
16
|
# to install a specific version
|
|
17
|
-
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.22-canary.
|
|
17
|
+
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.22-canary.20250901T140556"
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
```bash#npm
|
|
@@ -189,10 +189,10 @@ Since Bun is a single binary, you can install older versions of Bun by re-runnin
|
|
|
189
189
|
|
|
190
190
|
### Installing a specific version of Bun on Linux/Mac
|
|
191
191
|
|
|
192
|
-
To install a specific version of Bun, you can pass the git tag of the version you want to install to the install script, such as `bun-v1.2.0` or `bun-v1.2.22-canary.
|
|
192
|
+
To install a specific version of Bun, you can pass the git tag of the version you want to install to the install script, such as `bun-v1.2.0` or `bun-v1.2.22-canary.20250901T140556`.
|
|
193
193
|
|
|
194
194
|
```sh
|
|
195
|
-
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.22-canary.
|
|
195
|
+
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.22-canary.20250901T140556"
|
|
196
196
|
```
|
|
197
197
|
|
|
198
198
|
### Installing a specific version of Bun on Windows
|
|
@@ -201,7 +201,7 @@ On Windows, you can install a specific version of Bun by passing the version num
|
|
|
201
201
|
|
|
202
202
|
```sh
|
|
203
203
|
# PowerShell:
|
|
204
|
-
$ iex "& {$(irm https://bun.com/install.ps1)} -Version 1.2.22-canary.
|
|
204
|
+
$ iex "& {$(irm https://bun.com/install.ps1)} -Version 1.2.22-canary.20250901T140556"
|
|
205
205
|
```
|
|
206
206
|
|
|
207
207
|
## Downloading Bun binaries directly
|
package/docs/runtime/debugger.md
CHANGED
|
@@ -124,11 +124,11 @@ await fetch("https://example.com", {
|
|
|
124
124
|
This prints the `fetch` request as a single-line `curl` command to let you copy-paste into your terminal to replicate the request.
|
|
125
125
|
|
|
126
126
|
```sh
|
|
127
|
-
[fetch] $ curl --http1.1 "https://example.com/" -X POST -H "content-type: application/json" -H "Connection: keep-alive" -H "User-Agent: Bun/1.2.22-canary.
|
|
127
|
+
[fetch] $ curl --http1.1 "https://example.com/" -X POST -H "content-type: application/json" -H "Connection: keep-alive" -H "User-Agent: Bun/1.2.22-canary.20250901T140556" -H "Accept: */*" -H "Host: example.com" -H "Accept-Encoding: gzip, deflate, br" --compressed -H "Content-Length: 13" --data-raw "{\"foo\":\"bar\"}"
|
|
128
128
|
[fetch] > HTTP/1.1 POST https://example.com/
|
|
129
129
|
[fetch] > content-type: application/json
|
|
130
130
|
[fetch] > Connection: keep-alive
|
|
131
|
-
[fetch] > User-Agent: Bun/1.2.22-canary.
|
|
131
|
+
[fetch] > User-Agent: Bun/1.2.22-canary.20250901T140556
|
|
132
132
|
[fetch] > Accept: */*
|
|
133
133
|
[fetch] > Host: example.com
|
|
134
134
|
[fetch] > Accept-Encoding: gzip, deflate, br
|
|
@@ -170,7 +170,7 @@ This prints the following to the console:
|
|
|
170
170
|
[fetch] > HTTP/1.1 POST https://example.com/
|
|
171
171
|
[fetch] > content-type: application/json
|
|
172
172
|
[fetch] > Connection: keep-alive
|
|
173
|
-
[fetch] > User-Agent: Bun/1.2.22-canary.
|
|
173
|
+
[fetch] > User-Agent: Bun/1.2.22-canary.20250901T140556
|
|
174
174
|
[fetch] > Accept: */*
|
|
175
175
|
[fetch] > Host: example.com
|
|
176
176
|
[fetch] > Accept-Encoding: gzip, deflate, br
|
package/docs/runtime/jsx.md
CHANGED
|
@@ -246,6 +246,65 @@ The module from which the component factory function (`createElement`, `jsx`, `j
|
|
|
246
246
|
|
|
247
247
|
{% /table %}
|
|
248
248
|
|
|
249
|
+
### `jsxSideEffects`
|
|
250
|
+
|
|
251
|
+
By default, Bun marks JSX expressions as `/* @__PURE__ */` so they can be removed during bundling if they are unused (known as "dead code elimination" or "tree shaking"). Set `jsxSideEffects` to `true` to prevent this behavior.
|
|
252
|
+
|
|
253
|
+
{% table %}
|
|
254
|
+
|
|
255
|
+
- Compiler options
|
|
256
|
+
- Transpiled output
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
- ```jsonc
|
|
261
|
+
{
|
|
262
|
+
"jsx": "react",
|
|
263
|
+
// jsxSideEffects is false by default
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
- ```tsx
|
|
268
|
+
// JSX expressions are marked as pure
|
|
269
|
+
/* @__PURE__ */ React.createElement("div", null, "Hello");
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
- ```jsonc
|
|
275
|
+
{
|
|
276
|
+
"jsx": "react",
|
|
277
|
+
"jsxSideEffects": true,
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
- ```tsx
|
|
282
|
+
// JSX expressions are not marked as pure
|
|
283
|
+
React.createElement("div", null, "Hello");
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
- ```jsonc
|
|
289
|
+
{
|
|
290
|
+
"jsx": "react-jsx",
|
|
291
|
+
"jsxSideEffects": true,
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
- ```tsx
|
|
296
|
+
// Automatic runtime also respects jsxSideEffects
|
|
297
|
+
jsx("div", { children: "Hello" });
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
{% /table %}
|
|
301
|
+
|
|
302
|
+
This option is also available as a CLI flag:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
$ bun build --jsx-side-effects
|
|
306
|
+
```
|
|
307
|
+
|
|
249
308
|
### JSX pragma
|
|
250
309
|
|
|
251
310
|
All of these values can be set on a per-file basis using _pragmas_. A pragma is a special comment that sets a compiler option in a particular file.
|
package/docs/test/dom.md
CHANGED
package/package.json
CHANGED