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 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.20250714T140751
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.20250714T140751\n"
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
- Options for the `pack` command:
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
- - `--dry-run`: Perform all tasks except writing the tarball to disk.
14
- - `--destination`: Specify the directory where the tarball will be saved.
15
- - `--filename`: Specify an exact file name for the tarball to be saved at.
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`: Set a custom compression level for gzip, ranging from 0 to 9 (default is 9).
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
- > Note `--filename` and `--destination` cannot be used at the same time
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.20250714T140751 (ca7428e9)
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
+ ```
@@ -7,7 +7,7 @@ Use `bun publish` to publish a package to the npm registry.
7
7
  $ bun publish
8
8
 
9
9
  ## Output
10
- bun publish v1.2.19-canary.20250714T140751 (ca7428e9)
10
+ bun publish v1.2.19-canary.20250716T140648 (ca7428e9)
11
11
 
12
12
  packed 203B package.json
13
13
  packed 224B README.md
@@ -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.20250714T140751 (16b4bf34)
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 (v5.3.1) to ./node_modules/@prisma/client in 41ms
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.20250714T140751"
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.20250714T140751"
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.20250714T140751
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.20250714T140751 (9c68abdb)
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.20250714T140751 (9c68abdb)
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.20250714T140751 (9c68abdb)
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.20250714T140751 (9c68abdb)
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.20250714T140751 (9c68abdb)
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.20250714T140751 (9c68abdb)
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.20250714T140751 (9c68abdb)
32
+ bun test v1.2.19-canary.20250716T140648 (9c68abdb)
33
33
 
34
34
  test/snap.test.ts:
35
35
  ✓ snapshot [0.86ms]
@@ -5,7 +5,7 @@ name: Get the current Bun version
5
5
  Get the current version of Bun in a semver format.
6
6
 
7
7
  ```ts#index.ts
8
- Bun.version; // => "1.2.19-canary.20250714T140751"
8
+ Bun.version; // => "1.2.19-canary.20250716T140648"
9
9
  ```
10
10
 
11
11
  ---
@@ -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:
@@ -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.20250714T140751"
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.20250714T140751`.
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.20250714T140751"
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.20250714T140751"
204
+ $ iex "& {$(irm https://bun.com/install.ps1)} -Version 1.2.19-canary.20250716T140648"
205
205
  ```
206
206
 
207
207
  ## Downloading Bun binaries directly
@@ -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`.
@@ -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.20250714T140751" -H "Accept: */*" -H "Host: example.com" -H "Accept-Encoding: gzip, deflate, br" --compressed -H "Content-Length: 13" --data-raw "{\"foo\":\"bar\"}"
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.20250714T140751
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.20250714T140751
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.
@@ -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
- ### Exclude test files from coverage
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
- ### Sourcemaps
82
+ #### Ignore specific paths and patterns
72
83
 
73
- 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.
84
+ You can exclude specific files or file patterns from coverage reports using `coveragePathIgnorePatterns`:
74
85
 
75
86
  ```toml
76
87
  [test]
77
- coverageIgnoreSourcemaps = true # default false
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
@@ -55,7 +55,7 @@ Let's run this test with `bun test`:
55
55
 
56
56
  ```bash
57
57
  $ bun test
58
- bun test v1.2.19-canary.20250714T140751
58
+ bun test v1.2.19-canary.20250716T140648
59
59
 
60
60
  dom.test.ts:
61
61
  ✓ dom test [0.82ms]
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.19-canary.20250714T140751",
2
+ "version": "1.2.19-canary.20250716T140648",
3
3
  "name": "bun-types",
4
4
  "license": "MIT",
5
5
  "types": "./index.d.ts",