bun-types 1.2.19-canary.20250714T140751 → 1.2.19-canary.20250715T140719

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/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.20250715T140719
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.20250715T140719\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
+ ```
66
+
67
+ **Quiet output:**
68
+
69
+ ```bash
70
+ $ bun pm pack --quiet
71
+ my-package-1.0.0.tgz
72
+ ```
18
73
 
19
- > Note `--filename` and `--destination` cannot be used at the same time
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.20250715T140719 (ca7428e9)
162
217
  Current package version: v1.0.0
163
218
 
164
219
  Increment:
@@ -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.20250715T140719 (ca7428e9)
11
11
 
12
12
  packed 203B package.json
13
13
  packed 224B README.md
@@ -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.20250715T140719 (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.20250715T140719"
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.20250715T140719"
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.20250715T140719
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.20250715T140719 (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.20250715T140719 (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.20250715T140719 (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.20250715T140719 (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.20250715T140719 (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.20250715T140719 (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.20250715T140719 (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.20250715T140719"
9
9
  ```
10
10
 
11
11
  ---
@@ -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.20250715T140719"
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.20250715T140719`.
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.20250715T140719"
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.20250715T140719"
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.20250715T140719" -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.20250715T140719
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.20250715T140719
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.20250715T140719
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.20250715T140719",
3
3
  "name": "bun-types",
4
4
  "license": "MIT",
5
5
  "types": "./index.d.ts",