bun-types 1.2.19-canary.20250714T140751 → 1.2.19-canary.20250716T140648
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 +13 -0
- package/docs/api/fetch.md +1 -1
- package/docs/api/spawn.md +1 -1
- package/docs/api/sql.md +17 -0
- package/docs/cli/pm.md +97 -7
- package/docs/cli/publish.md +1 -1
- package/docs/cli/why.md +67 -0
- package/docs/guides/ecosystem/nuxt.md +1 -1
- package/docs/guides/ecosystem/prisma.md +2 -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/catalogs.md +2 -0
- package/docs/installation.md +4 -4
- package/docs/runtime/bunfig.md +18 -0
- package/docs/runtime/debugger.md +3 -3
- package/docs/test/configuration.md +20 -0
- package/docs/test/coverage.md +34 -4
- package/docs/test/dom.md +1 -1
- package/package.json +1 -1
package/bun.d.ts
CHANGED
|
@@ -2512,6 +2512,19 @@ declare module "bun" {
|
|
|
2512
2512
|
* This defaults to `true`.
|
|
2513
2513
|
*/
|
|
2514
2514
|
throw?: boolean;
|
|
2515
|
+
|
|
2516
|
+
/**
|
|
2517
|
+
* Custom tsconfig.json file path to use for path resolution.
|
|
2518
|
+
* Equivalent to `--tsconfig-override` in the CLI.
|
|
2519
|
+
* @example
|
|
2520
|
+
* ```ts
|
|
2521
|
+
* await Bun.build({
|
|
2522
|
+
* entrypoints: ['./src/index.ts'],
|
|
2523
|
+
* tsconfig: './custom-tsconfig.json'
|
|
2524
|
+
* });
|
|
2525
|
+
* ```
|
|
2526
|
+
*/
|
|
2527
|
+
tsconfig?: string;
|
|
2515
2528
|
}
|
|
2516
2529
|
|
|
2517
2530
|
/**
|
package/docs/api/fetch.md
CHANGED
|
@@ -337,7 +337,7 @@ This will print the request and response headers to your terminal:
|
|
|
337
337
|
```sh
|
|
338
338
|
[fetch] > HTTP/1.1 GET http://example.com/
|
|
339
339
|
[fetch] > Connection: keep-alive
|
|
340
|
-
[fetch] > User-Agent: Bun/1.2.19-canary.
|
|
340
|
+
[fetch] > User-Agent: Bun/1.2.19-canary.20250716T140648
|
|
341
341
|
[fetch] > Accept: */*
|
|
342
342
|
[fetch] > Host: example.com
|
|
343
343
|
[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.19-canary.
|
|
143
|
+
console.log(text); // => "1.2.19-canary.20250716T140648\n"
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
Configure the output stream by passing one of the following values to `stdout/stderr`:
|
package/docs/api/sql.md
CHANGED
|
@@ -274,6 +274,23 @@ If no connection URL is provided, the system checks for the following individual
|
|
|
274
274
|
| `PGPASSWORD` | - | (empty) | Database password |
|
|
275
275
|
| `PGDATABASE` | - | username | Database name |
|
|
276
276
|
|
|
277
|
+
## Runtime Preconnection
|
|
278
|
+
|
|
279
|
+
Bun can preconnect to PostgreSQL at startup to improve performance by establishing database connections before your application code runs. This is useful for reducing connection latency on the first database query.
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Enable PostgreSQL preconnection
|
|
283
|
+
bun --sql-preconnect index.js
|
|
284
|
+
|
|
285
|
+
# Works with DATABASE_URL environment variable
|
|
286
|
+
DATABASE_URL=postgres://user:pass@localhost:5432/db bun --sql-preconnect index.js
|
|
287
|
+
|
|
288
|
+
# Can be combined with other runtime flags
|
|
289
|
+
bun --sql-preconnect --hot index.js
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
The `--sql-preconnect` flag will automatically establish a PostgreSQL connection using your configured environment variables at startup. If the connection fails, it won't crash your application - the error will be handled gracefully.
|
|
293
|
+
|
|
277
294
|
## Connection Options
|
|
278
295
|
|
|
279
296
|
You can configure your database connection manually by passing options to the SQL constructor:
|
package/docs/cli/pm.md
CHANGED
|
@@ -8,15 +8,70 @@ To create a tarball of the current workspace:
|
|
|
8
8
|
$ bun pm pack
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
This command creates a `.tgz` file containing all files that would be published to npm, following the same rules as `npm pack`.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
Basic usage:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
$ bun pm pack
|
|
19
|
+
# Creates my-package-1.0.0.tgz in current directory
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Quiet mode for scripting:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
$ TARBALL=$(bun pm pack --quiet)
|
|
26
|
+
$ echo "Created: $TARBALL"
|
|
27
|
+
# Output: Created: my-package-1.0.0.tgz
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Custom destination:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
$ bun pm pack --destination ./dist
|
|
34
|
+
# Saves tarball in ./dist/ directory
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Options
|
|
38
|
+
|
|
39
|
+
- `--dry-run`: Perform all tasks except writing the tarball to disk. Shows what would be included.
|
|
40
|
+
- `--destination <dir>`: Specify the directory where the tarball will be saved.
|
|
41
|
+
- `--filename <name>`: Specify an exact file name for the tarball to be saved at.
|
|
16
42
|
- `--ignore-scripts`: Skip running pre/postpack and prepare scripts.
|
|
17
|
-
- `--gzip-level
|
|
43
|
+
- `--gzip-level <0-9>`: Set a custom compression level for gzip, ranging from 0 to 9 (default is 9).
|
|
44
|
+
- `--quiet`: Only output the tarball filename, suppressing verbose output. Ideal for scripts and automation.
|
|
45
|
+
|
|
46
|
+
> **Note:** `--filename` and `--destination` cannot be used at the same time.
|
|
47
|
+
|
|
48
|
+
## Output Modes
|
|
49
|
+
|
|
50
|
+
**Default output:**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
$ bun pm pack
|
|
54
|
+
bun pack v1.2.19
|
|
55
|
+
|
|
56
|
+
packed 131B package.json
|
|
57
|
+
packed 40B index.js
|
|
58
|
+
|
|
59
|
+
my-package-1.0.0.tgz
|
|
60
|
+
|
|
61
|
+
Total files: 2
|
|
62
|
+
Shasum: f2451d6eb1e818f500a791d9aace80b394258a90
|
|
63
|
+
Unpacked size: 171B
|
|
64
|
+
Packed size: 249B
|
|
65
|
+
```
|
|
18
66
|
|
|
19
|
-
|
|
67
|
+
**Quiet output:**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
$ bun pm pack --quiet
|
|
71
|
+
my-package-1.0.0.tgz
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The `--quiet` flag is particularly useful for automation workflows where you need to capture the generated tarball filename for further processing.
|
|
20
75
|
|
|
21
76
|
## bin
|
|
22
77
|
|
|
@@ -158,7 +213,7 @@ To display current package version and help:
|
|
|
158
213
|
|
|
159
214
|
```bash
|
|
160
215
|
$ bun pm version
|
|
161
|
-
bun pm version v1.2.19-canary.
|
|
216
|
+
bun pm version v1.2.19-canary.20250716T140648 (ca7428e9)
|
|
162
217
|
Current package version: v1.0.0
|
|
163
218
|
|
|
164
219
|
Increment:
|
|
@@ -193,3 +248,38 @@ v1.0.1
|
|
|
193
248
|
```
|
|
194
249
|
|
|
195
250
|
Supports `patch`, `minor`, `major`, `premajor`, `preminor`, `prepatch`, `prerelease`, `from-git`, or specific versions like `1.2.3`. By default creates git commit and tag unless `--no-git-tag-version` was used to skip.
|
|
251
|
+
|
|
252
|
+
## pkg
|
|
253
|
+
|
|
254
|
+
Manage `package.json` data with get, set, delete, and fix operations.
|
|
255
|
+
|
|
256
|
+
All commands support dot and bracket notation:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
scripts.build # dot notation
|
|
260
|
+
contributors[0] # array access
|
|
261
|
+
workspaces.0 # dot with numeric index
|
|
262
|
+
scripts[test:watch] # bracket for special chars
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Examples:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
# set
|
|
269
|
+
$ bun pm pkg get name # single property
|
|
270
|
+
$ bun pm pkg get name version # multiple properties
|
|
271
|
+
$ bun pm pkg get # entire package.json
|
|
272
|
+
$ bun pm pkg get scripts.build # nested property
|
|
273
|
+
|
|
274
|
+
# set
|
|
275
|
+
$ bun pm pkg set name="my-package" # simple property
|
|
276
|
+
$ bun pm pkg set scripts.test="jest" version=2.0.0 # multiple properties
|
|
277
|
+
$ bun pm pkg set {"private":"true"} --json # JSON values with --json flag
|
|
278
|
+
|
|
279
|
+
# delete
|
|
280
|
+
$ bun pm pkg delete description # single property
|
|
281
|
+
$ bun pm pkg delete scripts.test contributors[0] # multiple/nested
|
|
282
|
+
|
|
283
|
+
# fix
|
|
284
|
+
$ bun pm pkg fix # auto-fix common issues
|
|
285
|
+
```
|
package/docs/cli/publish.md
CHANGED
package/docs/cli/why.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
The `bun why` command explains why a package is installed in your project by showing the dependency chain that led to its installation.
|
|
2
|
+
|
|
3
|
+
## Usage
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
$ bun why <package>
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
|
|
11
|
+
- `<package>`: The name of the package to explain. Supports glob patterns like `@org/*` or `*-lodash`.
|
|
12
|
+
|
|
13
|
+
## Options
|
|
14
|
+
|
|
15
|
+
- `--top`: Show only the top-level dependencies instead of the complete dependency tree.
|
|
16
|
+
- `--depth <number>`: Maximum depth of the dependency tree to display.
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
Check why a specific package is installed:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
$ bun why react
|
|
24
|
+
react@18.2.0
|
|
25
|
+
└─ my-app@1.0.0 (requires ^18.0.0)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Check why all packages with a specific pattern are installed:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
$ bun why "@types/*"
|
|
32
|
+
@types/react@18.2.15
|
|
33
|
+
└─ dev my-app@1.0.0 (requires ^18.0.0)
|
|
34
|
+
|
|
35
|
+
@types/react-dom@18.2.7
|
|
36
|
+
└─ dev my-app@1.0.0 (requires ^18.0.0)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Show only top-level dependencies:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
$ bun why express --top
|
|
43
|
+
express@4.18.2
|
|
44
|
+
└─ my-app@1.0.0 (requires ^4.18.2)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Limit the dependency tree depth:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
$ bun why express --depth 2
|
|
51
|
+
express@4.18.2
|
|
52
|
+
└─ express-pollyfill@1.20.1 (requires ^4.18.2)
|
|
53
|
+
└─ body-parser@1.20.1 (requires ^1.20.1)
|
|
54
|
+
└─ accepts@1.3.8 (requires ^1.3.8)
|
|
55
|
+
└─ (deeper dependencies hidden)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Understanding the Output
|
|
59
|
+
|
|
60
|
+
The output shows:
|
|
61
|
+
|
|
62
|
+
- The package name and version being queried
|
|
63
|
+
- The dependency chain that led to its installation
|
|
64
|
+
- The type of dependency (dev, peer, optional, or production)
|
|
65
|
+
- The version requirement specified in each package's dependencies
|
|
66
|
+
|
|
67
|
+
For nested dependencies, the command shows the complete dependency tree by default, with indentation indicating the relationship hierarchy.
|
|
@@ -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.19-canary.
|
|
12
|
+
bun install v1.2.19-canary.20250716T140648 (16b4bf34)
|
|
13
13
|
+ @nuxt/devtools@0.8.2
|
|
14
14
|
+ nuxt@3.7.0
|
|
15
15
|
785 packages installed [2.67s]
|
|
@@ -40,6 +40,7 @@ Open `prisma/schema.prisma` and add a simple `User` model.
|
|
|
40
40
|
```prisma-diff#prisma/schema.prisma
|
|
41
41
|
generator client {
|
|
42
42
|
provider = "prisma-client-js"
|
|
43
|
+
output = "../generated/prisma"
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
datasource db {
|
|
@@ -78,7 +79,7 @@ migrations/
|
|
|
78
79
|
|
|
79
80
|
Your database is now in sync with your schema.
|
|
80
81
|
|
|
81
|
-
✔ Generated Prisma Client (
|
|
82
|
+
✔ Generated Prisma Client (v6.11.1) to ./generated/prisma in 41ms
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
---
|
|
@@ -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.19-canary.
|
|
18
|
+
+ "@types/bun": "^1.2.19-canary.20250716T140648"
|
|
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.19-canary.
|
|
30
|
+
"@types/bun": "^1.2.19-canary.20250716T140648"
|
|
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.19-canary.
|
|
100
|
+
$ bun update @types/bun@1.2.19-canary.20250716T140648
|
|
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.19-canary.
|
|
24
|
+
bun test v1.2.19-canary.20250716T140648 (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.19-canary.
|
|
50
|
+
bun test v1.2.19-canary.20250716T140648 (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.19-canary.
|
|
88
|
+
bun test v1.2.19-canary.20250716T140648 (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.19-canary.
|
|
21
|
+
bun test v1.2.19-canary.20250716T140648 (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.19-canary.
|
|
64
|
+
bun test v1.2.19-canary.20250716T140648 (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.19-canary.
|
|
81
|
+
bun test v1.2.19-canary.20250716T140648 (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.19-canary.
|
|
32
|
+
bun test v1.2.19-canary.20250716T140648 (9c68abdb)
|
|
33
33
|
|
|
34
34
|
test/snap.test.ts:
|
|
35
35
|
✓ snapshot [0.86ms]
|
package/docs/install/catalogs.md
CHANGED
|
@@ -52,6 +52,8 @@ In your root-level `package.json`, add a `catalog` or `catalogs` field within th
|
|
|
52
52
|
}
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
If you put `catalog` or `catalogs` at the top level of the `package.json` file, that will work too.
|
|
56
|
+
|
|
55
57
|
### 2. Reference Catalog Versions in Workspace Packages
|
|
56
58
|
|
|
57
59
|
In your workspace packages, use the `catalog:` protocol to reference versions:
|
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.19-canary.
|
|
17
|
+
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.19-canary.20250716T140648"
|
|
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.19-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.19-canary.20250716T140648`.
|
|
193
193
|
|
|
194
194
|
```sh
|
|
195
|
-
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.19-canary.
|
|
195
|
+
$ curl -fsSL https://bun.com/install | bash -s "bun-v1.2.19-canary.20250716T140648"
|
|
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.19-canary.
|
|
204
|
+
$ iex "& {$(irm https://bun.com/install.ps1)} -Version 1.2.19-canary.20250716T140648"
|
|
205
205
|
```
|
|
206
206
|
|
|
207
207
|
## Downloading Bun binaries directly
|
package/docs/runtime/bunfig.md
CHANGED
|
@@ -195,6 +195,24 @@ Whether to skip test files when computing coverage statistics. Default `false`.
|
|
|
195
195
|
coverageSkipTestFiles = false
|
|
196
196
|
```
|
|
197
197
|
|
|
198
|
+
### `test.coveragePathIgnorePatterns`
|
|
199
|
+
|
|
200
|
+
Exclude specific files or file patterns from coverage reports using glob patterns. Can be a single string pattern or an array of patterns.
|
|
201
|
+
|
|
202
|
+
```toml
|
|
203
|
+
[test]
|
|
204
|
+
# Single pattern
|
|
205
|
+
coveragePathIgnorePatterns = "**/*.spec.ts"
|
|
206
|
+
|
|
207
|
+
# Multiple patterns
|
|
208
|
+
coveragePathIgnorePatterns = [
|
|
209
|
+
"**/*.spec.ts",
|
|
210
|
+
"**/*.test.ts",
|
|
211
|
+
"src/utils/**",
|
|
212
|
+
"*.config.js"
|
|
213
|
+
]
|
|
214
|
+
```
|
|
215
|
+
|
|
198
216
|
### `test.coverageReporter`
|
|
199
217
|
|
|
200
218
|
By default, coverage reports will be printed to the console. For persistent code coverage reports in CI environments and for other tools use `lcov`.
|
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.19-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.19-canary.20250716T140648" -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.19-canary.
|
|
131
|
+
[fetch] > User-Agent: Bun/1.2.19-canary.20250716T140648
|
|
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.19-canary.
|
|
173
|
+
[fetch] > User-Agent: Bun/1.2.19-canary.20250716T140648
|
|
174
174
|
[fetch] > Accept: */*
|
|
175
175
|
[fetch] > Host: example.com
|
|
176
176
|
[fetch] > Accept-Encoding: gzip, deflate, br
|
|
@@ -71,6 +71,26 @@ coverageThreshold = { lines = 0.9, functions = 0.8, statements = 0.85 }
|
|
|
71
71
|
|
|
72
72
|
Setting any of these enables `fail_on_low_coverage`, causing the test run to fail if coverage is below the threshold.
|
|
73
73
|
|
|
74
|
+
#### coveragePathIgnorePatterns
|
|
75
|
+
|
|
76
|
+
Exclude specific files or file patterns from coverage reports using glob patterns:
|
|
77
|
+
|
|
78
|
+
```toml
|
|
79
|
+
[test]
|
|
80
|
+
# Single pattern
|
|
81
|
+
coveragePathIgnorePatterns = "**/*.spec.ts"
|
|
82
|
+
|
|
83
|
+
# Multiple patterns
|
|
84
|
+
coveragePathIgnorePatterns = [
|
|
85
|
+
"**/*.spec.ts",
|
|
86
|
+
"**/*.test.ts",
|
|
87
|
+
"src/utils/**",
|
|
88
|
+
"*.config.js"
|
|
89
|
+
]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
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.
|
|
93
|
+
|
|
74
94
|
#### coverageIgnoreSourcemaps
|
|
75
95
|
|
|
76
96
|
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.
|
package/docs/test/coverage.md
CHANGED
|
@@ -57,7 +57,18 @@ coverageThreshold = { lines = 0.9, functions = 0.9, statements = 0.9 }
|
|
|
57
57
|
|
|
58
58
|
Setting any of these thresholds enables `fail_on_low_coverage`, causing the test run to fail if coverage is below the threshold.
|
|
59
59
|
|
|
60
|
-
###
|
|
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
|
|
61
72
|
|
|
62
73
|
By default, test files themselves are included in coverage reports. You can exclude them with:
|
|
63
74
|
|
|
@@ -68,15 +79,33 @@ coverageSkipTestFiles = true # default false
|
|
|
68
79
|
|
|
69
80
|
This will exclude files matching test patterns (e.g., _.test.ts, _\_spec.js) from the coverage report.
|
|
70
81
|
|
|
71
|
-
|
|
82
|
+
#### Ignore specific paths and patterns
|
|
72
83
|
|
|
73
|
-
|
|
84
|
+
You can exclude specific files or file patterns from coverage reports using `coveragePathIgnorePatterns`:
|
|
74
85
|
|
|
75
86
|
```toml
|
|
76
87
|
[test]
|
|
77
|
-
|
|
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
|
+
]
|
|
78
98
|
```
|
|
79
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
|
+
|
|
80
109
|
### Coverage defaults
|
|
81
110
|
|
|
82
111
|
By default, coverage reports:
|
|
@@ -84,6 +113,7 @@ By default, coverage reports:
|
|
|
84
113
|
1. Exclude `node_modules` directories
|
|
85
114
|
2. Exclude files loaded via non-JS/TS loaders (e.g., .css, .txt) unless a custom JS loader is specified
|
|
86
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
|
|
87
117
|
|
|
88
118
|
### Coverage reporters
|
|
89
119
|
|
package/docs/test/dom.md
CHANGED
package/package.json
CHANGED