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.
- package/docs/README.md +28 -0
- package/package.json +1 -1
- package/docs/api/binary-data.md +0 -1038
- package/docs/api/cc.md +0 -197
- package/docs/api/color.md +0 -262
- package/docs/api/console.md +0 -57
- package/docs/api/cookie.md +0 -449
- package/docs/api/dns.md +0 -110
- package/docs/api/fetch.md +0 -463
- package/docs/api/ffi.md +0 -557
- package/docs/api/file-io.md +0 -366
- package/docs/api/file-system-router.md +0 -112
- package/docs/api/file.md +0 -19
- package/docs/api/glob.md +0 -178
- package/docs/api/globals.md +0 -387
- package/docs/api/hashing.md +0 -319
- package/docs/api/html-rewriter.md +0 -334
- package/docs/api/http.md +0 -1408
- package/docs/api/import-meta.md +0 -69
- package/docs/api/node-api.md +0 -14
- package/docs/api/redis.md +0 -597
- package/docs/api/s3.md +0 -850
- package/docs/api/secrets.md +0 -319
- package/docs/api/semver.md +0 -52
- package/docs/api/spawn.md +0 -582
- package/docs/api/sql.md +0 -1374
- package/docs/api/sqlite.md +0 -694
- package/docs/api/streams.md +0 -230
- package/docs/api/tcp.md +0 -221
- package/docs/api/transpiler.md +0 -276
- package/docs/api/udp.md +0 -123
- package/docs/api/utils.md +0 -891
- package/docs/api/websockets.md +0 -573
- package/docs/api/workers.md +0 -322
- package/docs/api/yaml.md +0 -668
- package/docs/benchmarks.md +0 -120
- package/docs/bun-flavored-toml.md +0 -42
- package/docs/bundler/css.md +0 -1028
- package/docs/bundler/css_modules.md +0 -145
- package/docs/bundler/executables.md +0 -626
- package/docs/bundler/fullstack.md +0 -418
- package/docs/bundler/hmr.md +0 -234
- package/docs/bundler/html.md +0 -349
- package/docs/bundler/index.md +0 -1735
- package/docs/bundler/intro.md +0 -75
- package/docs/bundler/loaders.md +0 -410
- package/docs/bundler/macros.md +0 -329
- package/docs/bundler/plugins.md +0 -449
- package/docs/bundler/vs-esbuild.md +0 -1127
- package/docs/cli/add.md +0 -173
- package/docs/cli/bun-completions.md +0 -3
- package/docs/cli/bun-create.md +0 -338
- package/docs/cli/bun-install.md +0 -349
- package/docs/cli/bun-upgrade.md +0 -39
- package/docs/cli/bunx.md +0 -89
- package/docs/cli/filter.md +0 -90
- package/docs/cli/info.md +0 -65
- package/docs/cli/init.md +0 -85
- package/docs/cli/install.md +0 -344
- package/docs/cli/link.md +0 -40
- package/docs/cli/outdated.md +0 -90
- package/docs/cli/patch-commit.md +0 -11
- package/docs/cli/pm.md +0 -285
- package/docs/cli/publish.md +0 -120
- package/docs/cli/remove.md +0 -7
- package/docs/cli/run.md +0 -261
- package/docs/cli/test.md +0 -397
- package/docs/cli/unlink.md +0 -9
- package/docs/cli/update.md +0 -129
- package/docs/cli/why.md +0 -67
- package/docs/contributing/upgrading-webkit.md +0 -57
- package/docs/ecosystem/elysia.md +0 -24
- package/docs/ecosystem/express.md +0 -37
- package/docs/ecosystem/hono.md +0 -18
- package/docs/ecosystem/react.md +0 -65
- package/docs/ecosystem/stric.md +0 -38
- package/docs/guides/binary/arraybuffer-to-array.md +0 -27
- package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
- package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
- package/docs/guides/binary/arraybuffer-to-string.md +0 -15
- package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
- package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
- package/docs/guides/binary/blob-to-dataview.md +0 -14
- package/docs/guides/binary/blob-to-stream.md +0 -14
- package/docs/guides/binary/blob-to-string.md +0 -15
- package/docs/guides/binary/blob-to-typedarray.md +0 -14
- package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
- package/docs/guides/binary/buffer-to-blob.md +0 -14
- package/docs/guides/binary/buffer-to-readablestream.md +0 -41
- package/docs/guides/binary/buffer-to-string.md +0 -25
- package/docs/guides/binary/buffer-to-typedarray.md +0 -14
- package/docs/guides/binary/dataview-to-string.md +0 -15
- package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
- package/docs/guides/binary/typedarray-to-blob.md +0 -16
- package/docs/guides/binary/typedarray-to-buffer.md +0 -14
- package/docs/guides/binary/typedarray-to-dataview.md +0 -14
- package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
- package/docs/guides/binary/typedarray-to-string.md +0 -16
- package/docs/guides/deployment/railway.md +0 -157
- package/docs/guides/ecosystem/astro.md +0 -72
- package/docs/guides/ecosystem/discordjs.md +0 -77
- package/docs/guides/ecosystem/docker.md +0 -140
- package/docs/guides/ecosystem/drizzle.md +0 -185
- package/docs/guides/ecosystem/edgedb.md +0 -228
- package/docs/guides/ecosystem/elysia.md +0 -31
- package/docs/guides/ecosystem/express.md +0 -40
- package/docs/guides/ecosystem/hono.md +0 -39
- package/docs/guides/ecosystem/mongoose.md +0 -87
- package/docs/guides/ecosystem/neon-drizzle.md +0 -220
- package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
- package/docs/guides/ecosystem/nextjs.md +0 -49
- package/docs/guides/ecosystem/nuxt.md +0 -56
- package/docs/guides/ecosystem/pm2.md +0 -57
- package/docs/guides/ecosystem/prisma.md +0 -141
- package/docs/guides/ecosystem/qwik.md +0 -107
- package/docs/guides/ecosystem/react.md +0 -50
- package/docs/guides/ecosystem/remix.md +0 -78
- package/docs/guides/ecosystem/render.md +0 -79
- package/docs/guides/ecosystem/sentry.md +0 -52
- package/docs/guides/ecosystem/solidstart.md +0 -58
- package/docs/guides/ecosystem/ssr-react.md +0 -51
- package/docs/guides/ecosystem/stric.md +0 -55
- package/docs/guides/ecosystem/sveltekit.md +0 -125
- package/docs/guides/ecosystem/systemd.md +0 -113
- package/docs/guides/ecosystem/vite.md +0 -71
- package/docs/guides/html-rewriter/extract-links.md +0 -68
- package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
- package/docs/guides/http/cluster.md +0 -66
- package/docs/guides/http/fetch-unix.md +0 -33
- package/docs/guides/http/fetch.md +0 -24
- package/docs/guides/http/file-uploads.md +0 -94
- package/docs/guides/http/hot.md +0 -26
- package/docs/guides/http/proxy.md +0 -24
- package/docs/guides/http/server.md +0 -46
- package/docs/guides/http/simple.md +0 -18
- package/docs/guides/http/stream-file.md +0 -48
- package/docs/guides/http/stream-iterator.md +0 -47
- package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
- package/docs/guides/http/tls.md +0 -30
- package/docs/guides/install/add-dev.md +0 -26
- package/docs/guides/install/add-git.md +0 -36
- package/docs/guides/install/add-optional.md +0 -25
- package/docs/guides/install/add-peer.md +0 -43
- package/docs/guides/install/add-tarball.md +0 -33
- package/docs/guides/install/add.md +0 -42
- package/docs/guides/install/azure-artifacts.md +0 -73
- package/docs/guides/install/cicd.md +0 -41
- package/docs/guides/install/custom-registry.md +0 -30
- package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
- package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
- package/docs/guides/install/jfrog-artifactory.md +0 -28
- package/docs/guides/install/npm-alias.md +0 -23
- package/docs/guides/install/registry-scope.md +0 -38
- package/docs/guides/install/trusted.md +0 -46
- package/docs/guides/install/workspaces.md +0 -70
- package/docs/guides/install/yarnlock.md +0 -44
- package/docs/guides/process/argv.md +0 -58
- package/docs/guides/process/ctrl-c.md +0 -16
- package/docs/guides/process/ipc.md +0 -66
- package/docs/guides/process/nanoseconds.md +0 -13
- package/docs/guides/process/os-signals.md +0 -39
- package/docs/guides/process/spawn-stderr.md +0 -31
- package/docs/guides/process/spawn-stdout.md +0 -26
- package/docs/guides/process/spawn.md +0 -41
- package/docs/guides/process/stdin.md +0 -54
- package/docs/guides/read-file/arraybuffer.md +0 -28
- package/docs/guides/read-file/buffer.md +0 -19
- package/docs/guides/read-file/exists.md +0 -16
- package/docs/guides/read-file/json.md +0 -17
- package/docs/guides/read-file/mime.md +0 -20
- package/docs/guides/read-file/stream.md +0 -26
- package/docs/guides/read-file/string.md +0 -22
- package/docs/guides/read-file/uint8array.md +0 -21
- package/docs/guides/read-file/watch.md +0 -68
- package/docs/guides/runtime/build-time-constants.md +0 -293
- package/docs/guides/runtime/cicd.md +0 -43
- package/docs/guides/runtime/codesign-macos-executable.md +0 -56
- package/docs/guides/runtime/define-constant.md +0 -145
- package/docs/guides/runtime/delete-directory.md +0 -37
- package/docs/guides/runtime/delete-file.md +0 -19
- package/docs/guides/runtime/heap-snapshot.md +0 -26
- package/docs/guides/runtime/import-html.md +0 -15
- package/docs/guides/runtime/import-json.md +0 -44
- package/docs/guides/runtime/import-toml.md +0 -30
- package/docs/guides/runtime/import-yaml.md +0 -102
- package/docs/guides/runtime/read-env.md +0 -32
- package/docs/guides/runtime/set-env.md +0 -47
- package/docs/guides/runtime/shell.md +0 -40
- package/docs/guides/runtime/timezone.md +0 -35
- package/docs/guides/runtime/tsconfig-paths.md +0 -29
- package/docs/guides/runtime/typescript.md +0 -49
- package/docs/guides/runtime/vscode-debugger.md +0 -47
- package/docs/guides/runtime/web-debugger.md +0 -82
- package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
- package/docs/guides/streams/node-readable-to-blob.md +0 -11
- package/docs/guides/streams/node-readable-to-json.md +0 -12
- package/docs/guides/streams/node-readable-to-string.md +0 -12
- package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
- package/docs/guides/streams/to-array.md +0 -14
- package/docs/guides/streams/to-arraybuffer.md +0 -14
- package/docs/guides/streams/to-blob.md +0 -14
- package/docs/guides/streams/to-buffer.md +0 -15
- package/docs/guides/streams/to-json.md +0 -14
- package/docs/guides/streams/to-string.md +0 -14
- package/docs/guides/streams/to-typedarray.md +0 -22
- package/docs/guides/test/bail.md +0 -22
- package/docs/guides/test/coverage-threshold.md +0 -60
- package/docs/guides/test/coverage.md +0 -44
- package/docs/guides/test/happy-dom.md +0 -68
- package/docs/guides/test/migrate-from-jest.md +0 -143
- package/docs/guides/test/mock-clock.md +0 -48
- package/docs/guides/test/mock-functions.md +0 -68
- package/docs/guides/test/rerun-each.md +0 -14
- package/docs/guides/test/run-tests.md +0 -111
- package/docs/guides/test/skip-tests.md +0 -39
- package/docs/guides/test/snapshot.md +0 -95
- package/docs/guides/test/spy-on.md +0 -46
- package/docs/guides/test/svelte-test.md +0 -120
- package/docs/guides/test/testing-library.md +0 -92
- package/docs/guides/test/timeout.md +0 -15
- package/docs/guides/test/todo-tests.md +0 -67
- package/docs/guides/test/update-snapshots.md +0 -46
- package/docs/guides/test/watch-mode.md +0 -19
- package/docs/guides/util/base64.md +0 -15
- package/docs/guides/util/deep-equals.md +0 -39
- package/docs/guides/util/deflate.md +0 -18
- package/docs/guides/util/detect-bun.md +0 -23
- package/docs/guides/util/entrypoint.md +0 -17
- package/docs/guides/util/escape-html.md +0 -22
- package/docs/guides/util/file-url-to-path.md +0 -14
- package/docs/guides/util/gzip.md +0 -18
- package/docs/guides/util/hash-a-password.md +0 -54
- package/docs/guides/util/import-meta-dir.md +0 -13
- package/docs/guides/util/import-meta-file.md +0 -13
- package/docs/guides/util/import-meta-path.md +0 -13
- package/docs/guides/util/javascript-uuid.md +0 -23
- package/docs/guides/util/main.md +0 -32
- package/docs/guides/util/path-to-file-url.md +0 -14
- package/docs/guides/util/sleep.md +0 -22
- package/docs/guides/util/version.md +0 -21
- package/docs/guides/util/which-path-to-executable-bin.md +0 -15
- package/docs/guides/websocket/compression.md +0 -31
- package/docs/guides/websocket/context.md +0 -77
- package/docs/guides/websocket/pubsub.md +0 -41
- package/docs/guides/websocket/simple.md +0 -33
- package/docs/guides/write-file/append.md +0 -52
- package/docs/guides/write-file/basic.md +0 -44
- package/docs/guides/write-file/blob.md +0 -28
- package/docs/guides/write-file/cat.md +0 -17
- package/docs/guides/write-file/file-cp.md +0 -16
- package/docs/guides/write-file/filesink.md +0 -52
- package/docs/guides/write-file/response.md +0 -17
- package/docs/guides/write-file/stdout.md +0 -21
- package/docs/guides/write-file/stream.md +0 -17
- package/docs/guides/write-file/unlink.md +0 -16
- package/docs/index.md +0 -77
- package/docs/install/audit.md +0 -57
- package/docs/install/cache.md +0 -59
- package/docs/install/catalogs.md +0 -298
- package/docs/install/index.md +0 -248
- package/docs/install/isolated.md +0 -197
- package/docs/install/lifecycle.md +0 -46
- package/docs/install/lockfile.md +0 -58
- package/docs/install/npmrc.md +0 -105
- package/docs/install/overrides.md +0 -73
- package/docs/install/patch.md +0 -59
- package/docs/install/registries.md +0 -30
- package/docs/install/security-scanner-api.md +0 -81
- package/docs/install/workspaces.md +0 -114
- package/docs/installation.md +0 -327
- package/docs/project/asan.md +0 -124
- package/docs/project/benchmarking.md +0 -203
- package/docs/project/bindgen.md +0 -225
- package/docs/project/building-windows.md +0 -162
- package/docs/project/contributing.md +0 -347
- package/docs/project/internals/build-process-for-ci.md +0 -75
- package/docs/project/licensing.md +0 -73
- package/docs/project/roadmap.md +0 -87
- package/docs/quickstart.md +0 -157
- package/docs/runtime/autoimport.md +0 -94
- package/docs/runtime/bun-apis.md +0 -207
- package/docs/runtime/bunfig.md +0 -772
- package/docs/runtime/debugger.md +0 -325
- package/docs/runtime/env.md +0 -253
- package/docs/runtime/hot.md +0 -145
- package/docs/runtime/index.md +0 -312
- package/docs/runtime/jsx.md +0 -385
- package/docs/runtime/loaders.md +0 -130
- package/docs/runtime/modules.md +0 -320
- package/docs/runtime/nodejs-apis.md +0 -463
- package/docs/runtime/plugins.md +0 -561
- package/docs/runtime/shell.md +0 -605
- package/docs/runtime/typescript.md +0 -139
- package/docs/runtime/web-apis.md +0 -128
- package/docs/test/configuration.md +0 -154
- package/docs/test/coverage.md +0 -142
- package/docs/test/discovery.md +0 -85
- package/docs/test/dom.md +0 -75
- package/docs/test/examples/concurrent-test-glob.md +0 -132
- package/docs/test/hot.md +0 -15
- package/docs/test/lifecycle.md +0 -81
- package/docs/test/mocks.md +0 -313
- package/docs/test/reporters.md +0 -117
- package/docs/test/runtime-behavior.md +0 -95
- package/docs/test/snapshots.md +0 -68
- package/docs/test/time.md +0 -126
- package/docs/test/writing.md +0 -825
- package/docs/typescript.md +0 -53
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Use snapshot testing in `bun test`
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Bun's test runner supports Jest-style snapshot testing via `.toMatchSnapshot()`.
|
|
6
|
-
|
|
7
|
-
```ts#snap.test.ts
|
|
8
|
-
import { test, expect } from "bun:test";
|
|
9
|
-
|
|
10
|
-
test("snapshot", () => {
|
|
11
|
-
expect({ foo: "bar" }).toMatchSnapshot();
|
|
12
|
-
});
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
The first time this test is executed, Bun will evaluate the value passed into `expect()` and write it to disk in a directory called `__snapshots__` that lives alongside the test file. (Note the `snapshots: +1 added` line in the output.)
|
|
18
|
-
|
|
19
|
-
```sh
|
|
20
|
-
$ bun test test/snap
|
|
21
|
-
bun test v1.3.2-canary.20251105T140650 (9c68abdb)
|
|
22
|
-
|
|
23
|
-
test/snap.test.ts:
|
|
24
|
-
✓ snapshot [1.48ms]
|
|
25
|
-
|
|
26
|
-
1 pass
|
|
27
|
-
0 fail
|
|
28
|
-
snapshots: +1 added
|
|
29
|
-
1 expect() calls
|
|
30
|
-
Ran 1 tests across 1 files. [82.00ms]
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
The `__snapshots__` directory contains a `.snap` file for each test file in the directory.
|
|
36
|
-
|
|
37
|
-
```txt
|
|
38
|
-
test
|
|
39
|
-
├── __snapshots__
|
|
40
|
-
│ └── snap.test.ts.snap
|
|
41
|
-
└── snap.test.ts
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
The `snap.test.ts.snap` file is a JavaScript file that exports a serialized version of the value passed into `expect()`. The `{foo: "bar"}` object has been serialized to JSON.
|
|
47
|
-
|
|
48
|
-
```js
|
|
49
|
-
// Bun Snapshot v1, https://bun.sh/docs/test/snapshots
|
|
50
|
-
|
|
51
|
-
exports[`snapshot 1`] = `
|
|
52
|
-
{
|
|
53
|
-
"foo": "bar",
|
|
54
|
-
}
|
|
55
|
-
`;
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
Later, when this test file is executed again, Bun will read the snapshot file and compare it to the value passed into `expect()`. If the values are different, the test will fail.
|
|
61
|
-
|
|
62
|
-
```sh
|
|
63
|
-
$ bun test
|
|
64
|
-
bun test v1.3.2-canary.20251105T140650 (9c68abdb)
|
|
65
|
-
|
|
66
|
-
test/snap.test.ts:
|
|
67
|
-
✓ snapshot [1.05ms]
|
|
68
|
-
|
|
69
|
-
1 pass
|
|
70
|
-
0 fail
|
|
71
|
-
1 snapshots, 1 expect() calls
|
|
72
|
-
Ran 1 tests across 1 files. [101.00ms]
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
To update snapshots, use the `--update-snapshots` flag.
|
|
78
|
-
|
|
79
|
-
```sh
|
|
80
|
-
$ bun test --update-snapshots
|
|
81
|
-
bun test v1.3.2-canary.20251105T140650 (9c68abdb)
|
|
82
|
-
|
|
83
|
-
test/snap.test.ts:
|
|
84
|
-
✓ snapshot [0.86ms]
|
|
85
|
-
|
|
86
|
-
1 pass
|
|
87
|
-
0 fail
|
|
88
|
-
snapshots: +1 added # the snapshot was regenerated
|
|
89
|
-
1 expect() calls
|
|
90
|
-
Ran 1 tests across 1 files. [102.00ms]
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
See [Docs > Test Runner > Snapshots](https://bun.sh/docs/test/snapshots) for complete documentation on snapshots with the Bun test runner.
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Spy on methods in `bun test`
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use the `spyOn` utility to track method calls with Bun's test runner.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
import { test, expect, spyOn } from "bun:test";
|
|
9
|
-
|
|
10
|
-
const leo = {
|
|
11
|
-
name: "Leonardo",
|
|
12
|
-
sayHi(thing: string) {
|
|
13
|
-
console.log(`Sup I'm ${this.name} and I like ${thing}`);
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const spy = spyOn(leo, "sayHi");
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
Once the spy is created, it can be used to write `expect` assertions relating to method calls.
|
|
23
|
-
|
|
24
|
-
```ts-diff
|
|
25
|
-
import { test, expect, spyOn } from "bun:test";
|
|
26
|
-
|
|
27
|
-
const leo = {
|
|
28
|
-
name: "Leonardo",
|
|
29
|
-
sayHi(thing: string) {
|
|
30
|
-
console.log(`Sup I'm ${this.name} and I like ${thing}`);
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const spy = spyOn(leo, "sayHi");
|
|
35
|
-
|
|
36
|
-
+ test("turtles", ()=>{
|
|
37
|
-
+ expect(spy).toHaveBeenCalledTimes(0);
|
|
38
|
-
+ leo.sayHi("pizza");
|
|
39
|
-
+ expect(spy).toHaveBeenCalledTimes(1);
|
|
40
|
-
+ expect(spy.mock.calls).toEqual([[ "pizza" ]]);
|
|
41
|
-
+ })
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
See [Docs > Test Runner > Mocks](https://bun.sh/docs/test/mocks) for complete documentation on mocking with the Bun test runner.
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "import, require, and test Svelte components with bun test"
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Bun's [Plugin API](/docs/runtime/plugins) lets you add custom loaders to your project. The `test.preload` option in `bunfig.toml` lets you configure your loader to start before your tests run.
|
|
6
|
-
|
|
7
|
-
Firstly, install `@testing-library/svelte`, `svelte`, and `@happy-dom/global-registrator`.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
$ bun add @testing-library/svelte svelte@4 @happy-dom/global-registrator
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Then, save this plugin in your project.
|
|
14
|
-
|
|
15
|
-
```ts#svelte-loader.js
|
|
16
|
-
import { plugin } from "bun";
|
|
17
|
-
import { compile } from "svelte/compiler";
|
|
18
|
-
import { readFileSync } from "fs";
|
|
19
|
-
import { beforeEach, afterEach } from "bun:test";
|
|
20
|
-
import { GlobalRegistrator } from "@happy-dom/global-registrator";
|
|
21
|
-
|
|
22
|
-
beforeEach(async () => {
|
|
23
|
-
await GlobalRegistrator.register();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
afterEach(async () => {
|
|
27
|
-
await GlobalRegistrator.unregister();
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
plugin({
|
|
31
|
-
name: "svelte loader",
|
|
32
|
-
setup(builder) {
|
|
33
|
-
builder.onLoad({ filter: /\.svelte(\?[^.]+)?$/ }, ({ path }) => {
|
|
34
|
-
try {
|
|
35
|
-
const source = readFileSync(
|
|
36
|
-
path.substring(
|
|
37
|
-
0,
|
|
38
|
-
path.includes("?") ? path.indexOf("?") : path.length
|
|
39
|
-
),
|
|
40
|
-
"utf-8"
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const result = compile(source, {
|
|
44
|
-
filename: path,
|
|
45
|
-
generate: "client",
|
|
46
|
-
dev: false,
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
return {
|
|
50
|
-
contents: result.js.code,
|
|
51
|
-
loader: "js",
|
|
52
|
-
};
|
|
53
|
-
} catch (err) {
|
|
54
|
-
throw new Error(`Failed to compile Svelte component: ${err.message}`);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
Add this to `bunfig.toml` to tell Bun to preload the plugin, so it loads before your tests run.
|
|
65
|
-
|
|
66
|
-
```toml#bunfig.toml
|
|
67
|
-
[test]
|
|
68
|
-
# Tell Bun to load this plugin before your tests run
|
|
69
|
-
preload = ["./svelte-loader.js"]
|
|
70
|
-
|
|
71
|
-
# This also works:
|
|
72
|
-
# test.preload = ["./svelte-loader.js"]
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
Add an example `.svelte` file in your project.
|
|
78
|
-
|
|
79
|
-
```html#Counter.svelte
|
|
80
|
-
<script>
|
|
81
|
-
export let initialCount = 0;
|
|
82
|
-
let count = initialCount;
|
|
83
|
-
</script>
|
|
84
|
-
|
|
85
|
-
<button on:click={() => (count += 1)}>+1</button>
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
Now you can `import` or `require` `*.svelte` files in your tests, and it will load the Svelte component as a JavaScript module.
|
|
91
|
-
|
|
92
|
-
```ts#hello-svelte.test.ts
|
|
93
|
-
import { test, expect } from "bun:test";
|
|
94
|
-
import { render, fireEvent } from "@testing-library/svelte";
|
|
95
|
-
import Counter from "./Counter.svelte";
|
|
96
|
-
|
|
97
|
-
test("Counter increments when clicked", async () => {
|
|
98
|
-
const { getByText, component } = render(Counter);
|
|
99
|
-
const button = getByText("+1");
|
|
100
|
-
|
|
101
|
-
// Initial state
|
|
102
|
-
expect(component.$$.ctx[0]).toBe(0); // initialCount is the first prop
|
|
103
|
-
|
|
104
|
-
// Click the increment button
|
|
105
|
-
await fireEvent.click(button);
|
|
106
|
-
|
|
107
|
-
// Check the new state
|
|
108
|
-
expect(component.$$.ctx[0]).toBe(1);
|
|
109
|
-
});
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
Use `bun test` to run your tests.
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
$ bun test
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
---
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Using Testing Library with Bun
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
You can use [Testing Library](https://testing-library.com/) with Bun's test runner.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
As a prerequisite to using Testing Library you will need to install [Happy Dom](https://github.com/capricorn86/happy-dom). ([see Bun's Happy DOM guide for more information](https://bun.sh/guides/test/happy-dom)).
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
bun add -D @happy-dom/global-registrator
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
Next you should install the Testing Library packages you are planning on using. For example, if you are setting up testing for React your installs may look like this. You will also need to install `@testing-library/jest-dom` to get matchers working later.
|
|
18
|
-
|
|
19
|
-
```sh
|
|
20
|
-
bun add -D @testing-library/react @testing-library/dom @testing-library/jest-dom
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
Next you will need to create a preload script for Happy DOM and for Testing Library. For more details about the Happy DOM setup script see [Bun's Happy DOM guide](https://bun.sh/guides/test/happy-dom).
|
|
26
|
-
|
|
27
|
-
```ts#happydom.ts
|
|
28
|
-
import { GlobalRegistrator } from '@happy-dom/global-registrator';
|
|
29
|
-
|
|
30
|
-
GlobalRegistrator.register();
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
For Testing Library, you will want to extend Bun's `expect` function with Testing Library's matchers. Optionally, to better match the behavior of test-runners like Jest, you may want to run cleanup after each test.
|
|
36
|
-
|
|
37
|
-
```ts#testing-library.ts
|
|
38
|
-
import { afterEach, expect } from 'bun:test';
|
|
39
|
-
import { cleanup } from '@testing-library/react';
|
|
40
|
-
import * as matchers from '@testing-library/jest-dom/matchers';
|
|
41
|
-
|
|
42
|
-
expect.extend(matchers);
|
|
43
|
-
|
|
44
|
-
// Optional: cleans up `render` after each test
|
|
45
|
-
afterEach(() => {
|
|
46
|
-
cleanup();
|
|
47
|
-
});
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
Next, add these preload scripts to your `bunfig.toml` (you can also have everything in a single `preload.ts` script if you prefer).
|
|
53
|
-
|
|
54
|
-
```toml#bunfig.toml
|
|
55
|
-
[test]
|
|
56
|
-
preload = ["./happydom.ts", "./testing-library.ts"]
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
If you are using TypeScript you will also need to make use of declaration merging in order to get the new matcher types to show up in your editor. To do this, create a type declaration file that extends `Matchers` like this.
|
|
62
|
-
|
|
63
|
-
```ts#matchers.d.ts
|
|
64
|
-
import { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers';
|
|
65
|
-
import { Matchers, AsymmetricMatchers } from 'bun:test';
|
|
66
|
-
|
|
67
|
-
declare module 'bun:test' {
|
|
68
|
-
interface Matchers<T>
|
|
69
|
-
extends TestingLibraryMatchers<typeof expect.stringContaining, T> {}
|
|
70
|
-
interface AsymmetricMatchers extends TestingLibraryMatchers {}
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
You should now be able to use Testing Library in your tests
|
|
77
|
-
|
|
78
|
-
```ts
|
|
79
|
-
import { test, expect } from "bun:test";
|
|
80
|
-
import { screen, render } from "@testing-library/react";
|
|
81
|
-
import { MyComponent } from "./myComponent";
|
|
82
|
-
|
|
83
|
-
test("Can use Testing Library", () => {
|
|
84
|
-
render(MyComponent);
|
|
85
|
-
const myComponent = screen.getByTestId("my-component");
|
|
86
|
-
expect(myComponent).toBeInTheDocument();
|
|
87
|
-
});
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
Refer to the [Testing Library docs](https://testing-library.com/), [Happy DOM repo](https://github.com/capricorn86/happy-dom) and [Docs > Test runner > DOM](https://bun.sh/docs/test/dom) for complete documentation on writing browser tests with Bun.
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Set a per-test timeout with the Bun test runner
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use the `--timeout` flag to set a timeout for each test in milliseconds. If any test exceeds this timeout, it will be marked as failed.
|
|
6
|
-
|
|
7
|
-
The default timeout is `5000` (5 seconds).
|
|
8
|
-
|
|
9
|
-
```sh
|
|
10
|
-
$ bun test --timeout 3000 # 3 seconds
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
See [Docs > Test runner](https://bun.sh/docs/cli/test) for complete documentation of `bun test`.
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Mark a test as a "todo" with the Bun test runner
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
To remind yourself to write a test later, use the `test.todo` function. There's no need to provide a test implementation.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
import { test, expect } from "bun:test";
|
|
9
|
-
|
|
10
|
-
// write this later
|
|
11
|
-
test.todo("unimplemented feature");
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
The output of `bun test` indicates how many `todo` tests were encountered.
|
|
17
|
-
|
|
18
|
-
```sh
|
|
19
|
-
$ bun test
|
|
20
|
-
|
|
21
|
-
test.test.ts:
|
|
22
|
-
✓ add [0.03ms]
|
|
23
|
-
✓ multiply [0.02ms]
|
|
24
|
-
✎ unimplemented feature
|
|
25
|
-
|
|
26
|
-
2 pass
|
|
27
|
-
1 todo
|
|
28
|
-
0 fail
|
|
29
|
-
2 expect() calls
|
|
30
|
-
Ran 3 tests across 1 files. [74.00ms]
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
Optionally, you can provide a test implementation.
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
import { test, expect } from "bun:test";
|
|
39
|
-
|
|
40
|
-
test.todo("unimplemented feature", () => {
|
|
41
|
-
expect(Bun.isAwesome()).toBe(true);
|
|
42
|
-
});
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
If an implementation is provided, it will not be run unless the `--todo` flag is passed. If the `--todo` flag is passed, the test will be executed and _expected to fail_ by test runner! If a todo test passes, the `bun test` run will return a non-zero exit code to signal the failure.
|
|
48
|
-
|
|
49
|
-
```sh
|
|
50
|
-
$ bun test --todo
|
|
51
|
-
my.test.ts:
|
|
52
|
-
✗ unimplemented feature
|
|
53
|
-
^ this test is marked as todo but passes. Remove `.todo` or check that test is correct.
|
|
54
|
-
|
|
55
|
-
0 pass
|
|
56
|
-
1 fail
|
|
57
|
-
1 expect() calls
|
|
58
|
-
$ echo $?
|
|
59
|
-
1 # this is the exit code of the previous command
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
See also:
|
|
65
|
-
|
|
66
|
-
- [Skip a test](/guides/test/skip-tests)
|
|
67
|
-
- [Docs > Test runner > Writing tests](https://bun.sh/docs/test/writing)
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Update snapshots in `bun test`
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Bun's test runner supports Jest-style snapshot testing via `.toMatchSnapshot()`.
|
|
6
|
-
|
|
7
|
-
```ts#snap.test.ts
|
|
8
|
-
import { test, expect } from "bun:test";
|
|
9
|
-
|
|
10
|
-
test("snapshot", () => {
|
|
11
|
-
expect({ foo: "bar" }).toMatchSnapshot();
|
|
12
|
-
});
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
The first time this test is executed, Bun will write a snapshot file to disk in a directory called `__snapshots__` that lives alongside the test file.
|
|
18
|
-
|
|
19
|
-
```txt
|
|
20
|
-
test
|
|
21
|
-
├── __snapshots__
|
|
22
|
-
│ └── snap.test.ts.snap
|
|
23
|
-
└── snap.test.ts
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
To regenerate snapshots, use the `--update-snapshots` flag.
|
|
29
|
-
|
|
30
|
-
```sh
|
|
31
|
-
$ bun test --update-snapshots
|
|
32
|
-
bun test v1.3.2-canary.20251105T140650 (9c68abdb)
|
|
33
|
-
|
|
34
|
-
test/snap.test.ts:
|
|
35
|
-
✓ snapshot [0.86ms]
|
|
36
|
-
|
|
37
|
-
1 pass
|
|
38
|
-
0 fail
|
|
39
|
-
snapshots: +1 added # the snapshot was regenerated
|
|
40
|
-
1 expect() calls
|
|
41
|
-
Ran 1 tests across 1 files. [102.00ms]
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
See [Docs > Test Runner > Snapshots](https://bun.sh/docs/test/snapshots) for complete documentation on snapshots with the Bun test runner.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Run tests in watch mode with Bun
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use the `--watch` flag to run your tests in watch mode.
|
|
6
|
-
|
|
7
|
-
```sh
|
|
8
|
-
$ bun test --watch
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
This will restart the running Bun process whenever a file change is detected. It's fast. In this example, the editor is configured to save the file on every keystroke.
|
|
14
|
-
|
|
15
|
-
{% image src="https://github.com/oven-sh/bun/assets/3084745/dc49a36e-ba82-416f-b960-1c883a924248" caption="Running tests in watch mode in Bun" /%}
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
See [Docs > Test Runner](https://bun.sh/docs/cli/test) for complete documentation on the test runner.
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Encode and decode base64 strings
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Bun implements the Web-standard [`atob`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/atob) and [`btoa`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/btoa) functions for encoding and decoding base64 strings.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
const data = "hello world";
|
|
9
|
-
const encoded = btoa(data); // => "aGVsbG8gd29ybGQ="
|
|
10
|
-
const decoded = atob(encoded); // => "hello world"
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
See [Docs > Web APIs](https://bun.com/docs/runtime/web-apis) for a complete breakdown of the Web APIs implemented in Bun.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Check if two objects are deeply equal
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Check if two objects are deeply equal. This is used internally by `expect().toEqual()` in Bun's [test runner](https://bun.com/docs/test/writing).
|
|
6
|
-
|
|
7
|
-
```ts#index.ts
|
|
8
|
-
const a = { a: 1, b: 2, c: { d: 3 } };
|
|
9
|
-
const b = { a: 1, b: 2, c: { d: 3 } };
|
|
10
|
-
|
|
11
|
-
Bun.deepEquals(a, b); // true
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
Pass `true` as a third argument to enable strict mode. This is used internally by `expect().toStrictEqual()` in Bun's [test runner](https://bun.com/docs/test/writing).
|
|
17
|
-
|
|
18
|
-
The following examples would return `true` in non-strict mode but `false` in strict mode.
|
|
19
|
-
|
|
20
|
-
```ts
|
|
21
|
-
// undefined values
|
|
22
|
-
Bun.deepEquals({}, { a: undefined }, true); // false
|
|
23
|
-
|
|
24
|
-
// undefined in arrays
|
|
25
|
-
Bun.deepEquals(["asdf"], ["asdf", undefined], true); // false
|
|
26
|
-
|
|
27
|
-
// sparse arrays
|
|
28
|
-
Bun.deepEquals([, 1], [undefined, 1], true); // false
|
|
29
|
-
|
|
30
|
-
// object literals vs instances w/ same properties
|
|
31
|
-
class Foo {
|
|
32
|
-
a = 1;
|
|
33
|
-
}
|
|
34
|
-
Bun.deepEquals(new Foo(), { a: 1 }, true); // false
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Compress and decompress data with DEFLATE
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use `Bun.deflateSync()` to compress a `Uint8Array` with DEFLATE.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
const data = Buffer.from("Hello, world!");
|
|
9
|
-
const compressed = Bun.deflateSync("Hello, world!");
|
|
10
|
-
// => Uint8Array
|
|
11
|
-
|
|
12
|
-
const decompressed = Bun.inflateSync(compressed);
|
|
13
|
-
// => Uint8Array
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Detect when code is executed with Bun
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
The recommended way to conditionally detect when code is being executed with `bun` is to check for the existence of the `Bun` global.
|
|
6
|
-
|
|
7
|
-
This is similar to how you'd check for the existence of the `window` variable to detect when code is being executed in a browser.
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
if (typeof Bun !== "undefined") {
|
|
11
|
-
// this code will only run when the file is run with Bun
|
|
12
|
-
}
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
In TypeScript environments, the previous approach will result in a type error unless `@types/bun` is installed. To avoid this, you can check `process.versions` instead.
|
|
18
|
-
|
|
19
|
-
```ts
|
|
20
|
-
if (process.versions.bun) {
|
|
21
|
-
// this code will only run when the file is run with Bun
|
|
22
|
-
}
|
|
23
|
-
```
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Check if the current file is the entrypoint
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Bun provides a handful of module-specific utilities on the [`import.meta`](https://bun.com/docs/api/import-meta) object. Use `import.meta.main` to check if the current file is the entrypoint of the current process.
|
|
6
|
-
|
|
7
|
-
```ts#index.ts
|
|
8
|
-
if (import.meta.main) {
|
|
9
|
-
// this file is directly executed with `bun run`
|
|
10
|
-
} else {
|
|
11
|
-
// this file is being imported by another file
|
|
12
|
-
}
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
See [Docs > API > import.meta](https://bun.com/docs/api/import-meta) for complete documentation.
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Escape an HTML string
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
The `Bun.escapeHTML()` utility can be used to escape HTML characters in a string. The following replacements are made.
|
|
6
|
-
|
|
7
|
-
- `"` becomes `"""`
|
|
8
|
-
- `&` becomes `"&"`
|
|
9
|
-
- `'` becomes `"'"`
|
|
10
|
-
- `<` becomes `"<"`
|
|
11
|
-
- `>` becomes `">"`
|
|
12
|
-
|
|
13
|
-
This function is optimized for large input. Non-string types will be converted to a string before escaping.
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
Bun.escapeHTML("<script>alert('Hello World!')</script>");
|
|
17
|
-
// <script>alert('Hello World!')</script>
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Convert a file URL to an absolute path
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use `Bun.fileURLToPath()` to convert a `file://` URL to an absolute path.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
Bun.fileURLToPath("file:///path/to/file.txt");
|
|
9
|
-
// => "/path/to/file.txt"
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
|
package/docs/guides/util/gzip.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Compress and decompress data with gzip
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use `Bun.gzipSync()` to compress a `Uint8Array` with gzip.
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
const data = Buffer.from("Hello, world!");
|
|
9
|
-
const compressed = Bun.gzipSync(data);
|
|
10
|
-
// => Uint8Array
|
|
11
|
-
|
|
12
|
-
const decompressed = Bun.gunzipSync(compressed);
|
|
13
|
-
// => Uint8Array
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
See [Docs > API > Utils](https://bun.com/docs/api/utils) for more useful utilities.
|