bun-types 1.3.2-canary.20251106T140813 → 1.3.2
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 +102 -6
- package/docs/bundler/bytecode.mdx +465 -0
- package/docs/bundler/css.mdx +1024 -0
- package/docs/bundler/esbuild.mdx +253 -0
- package/docs/bundler/executables.mdx +535 -0
- package/docs/bundler/fullstack.mdx +1064 -0
- package/docs/bundler/hot-reloading.mdx +229 -0
- package/docs/bundler/html-static.mdx +386 -0
- package/docs/bundler/index.mdx +1499 -0
- package/docs/bundler/loaders.mdx +356 -0
- package/docs/bundler/macros.mdx +328 -0
- package/docs/bundler/minifier.mdx +1306 -0
- package/docs/bundler/plugins.mdx +411 -0
- package/docs/feedback.mdx +85 -0
- package/docs/guides/binary/arraybuffer-to-array.mdx +29 -0
- package/docs/guides/binary/arraybuffer-to-blob.mdx +26 -0
- package/docs/guides/binary/arraybuffer-to-buffer.mdx +27 -0
- package/docs/guides/binary/arraybuffer-to-string.mdx +17 -0
- package/docs/guides/binary/arraybuffer-to-typedarray.mdx +41 -0
- package/docs/guides/binary/blob-to-arraybuffer.mdx +16 -0
- package/docs/guides/binary/blob-to-dataview.mdx +16 -0
- package/docs/guides/binary/blob-to-stream.mdx +16 -0
- package/docs/guides/binary/blob-to-string.mdx +17 -0
- package/docs/guides/binary/blob-to-typedarray.mdx +16 -0
- package/docs/guides/binary/buffer-to-arraybuffer.mdx +16 -0
- package/docs/guides/binary/buffer-to-blob.mdx +16 -0
- package/docs/guides/binary/buffer-to-readablestream.mdx +43 -0
- package/docs/guides/binary/buffer-to-string.mdx +27 -0
- package/docs/guides/binary/buffer-to-typedarray.mdx +16 -0
- package/docs/guides/binary/dataview-to-string.mdx +17 -0
- package/docs/guides/binary/typedarray-to-arraybuffer.mdx +27 -0
- package/docs/guides/binary/typedarray-to-blob.mdx +18 -0
- package/docs/guides/binary/typedarray-to-buffer.mdx +16 -0
- package/docs/guides/binary/typedarray-to-dataview.mdx +16 -0
- package/docs/guides/binary/typedarray-to-readablestream.mdx +43 -0
- package/docs/guides/binary/typedarray-to-string.mdx +18 -0
- package/docs/guides/deployment/aws-lambda.mdx +204 -0
- package/docs/guides/deployment/digital-ocean.mdx +161 -0
- package/docs/guides/deployment/google-cloud-run.mdx +197 -0
- package/docs/guides/deployment/railway.mdx +145 -0
- package/docs/guides/deployment/render.mdx +82 -0
- package/docs/guides/deployment/vercel.mdx +99 -0
- package/docs/guides/ecosystem/astro.mdx +82 -0
- package/docs/guides/ecosystem/discordjs.mdx +80 -0
- package/docs/guides/ecosystem/docker.mdx +151 -0
- package/docs/guides/ecosystem/drizzle.mdx +195 -0
- package/docs/guides/ecosystem/edgedb.mdx +257 -0
- package/docs/guides/ecosystem/elysia.mdx +31 -0
- package/docs/guides/ecosystem/express.mdx +43 -0
- package/docs/guides/ecosystem/hono.mdx +47 -0
- package/docs/guides/ecosystem/mongoose.mdx +92 -0
- package/docs/guides/ecosystem/neon-drizzle.mdx +234 -0
- package/docs/guides/ecosystem/neon-serverless-postgres.mdx +60 -0
- package/docs/guides/ecosystem/nextjs.mdx +57 -0
- package/docs/guides/ecosystem/nuxt.mdx +90 -0
- package/docs/guides/ecosystem/pm2.mdx +55 -0
- package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
- package/docs/guides/ecosystem/prisma.mdx +164 -0
- package/docs/guides/ecosystem/qwik.mdx +114 -0
- package/docs/guides/ecosystem/react.mdx +52 -0
- package/docs/guides/ecosystem/remix.mdx +97 -0
- package/docs/guides/ecosystem/sentry.mdx +54 -0
- package/docs/guides/ecosystem/solidstart.mdx +66 -0
- package/docs/guides/ecosystem/ssr-react.mdx +49 -0
- package/docs/guides/ecosystem/stric.mdx +54 -0
- package/docs/guides/ecosystem/sveltekit.mdx +138 -0
- package/docs/guides/ecosystem/systemd.mdx +114 -0
- package/docs/guides/ecosystem/upstash.mdx +87 -0
- package/docs/guides/ecosystem/vite.mdx +77 -0
- package/docs/guides/html-rewriter/extract-links.mdx +72 -0
- package/docs/guides/html-rewriter/extract-social-meta.mdx +97 -0
- package/docs/guides/http/cluster.mdx +69 -0
- package/docs/guides/http/fetch-unix.mdx +35 -0
- package/docs/guides/http/fetch.mdx +26 -0
- package/docs/guides/http/file-uploads.mdx +97 -0
- package/docs/guides/http/hot.mdx +28 -0
- package/docs/guides/http/proxy.mdx +26 -0
- package/docs/guides/http/server.mdx +48 -0
- package/docs/guides/http/simple.mdx +20 -0
- package/docs/guides/http/stream-file.mdx +50 -0
- package/docs/guides/http/stream-iterator.mdx +49 -0
- package/docs/guides/http/stream-node-streams-in-bun.mdx +22 -0
- package/docs/guides/http/tls.mdx +32 -0
- package/docs/guides/index.mdx +10 -0
- package/docs/guides/install/add-dev.mdx +28 -0
- package/docs/guides/install/add-git.mdx +38 -0
- package/docs/guides/install/add-optional.mdx +27 -0
- package/docs/guides/install/add-peer.mdx +45 -0
- package/docs/guides/install/add-tarball.mdx +35 -0
- package/docs/guides/install/add.mdx +44 -0
- package/docs/guides/install/azure-artifacts.mdx +76 -0
- package/docs/guides/install/cicd.mdx +43 -0
- package/docs/guides/install/custom-registry.mdx +32 -0
- package/docs/guides/install/from-npm-install-to-bun-install.mdx +230 -0
- package/docs/guides/install/git-diff-bun-lockfile.mdx +47 -0
- package/docs/guides/install/jfrog-artifactory.mdx +28 -0
- package/docs/guides/install/npm-alias.mdx +25 -0
- package/docs/guides/install/registry-scope.mdx +40 -0
- package/docs/guides/install/trusted.mdx +50 -0
- package/docs/guides/install/workspaces.mdx +70 -0
- package/docs/guides/install/yarnlock.mdx +50 -0
- package/docs/guides/process/argv.mdx +66 -0
- package/docs/guides/process/ctrl-c.mdx +18 -0
- package/docs/guides/process/ipc.mdx +69 -0
- package/docs/guides/process/nanoseconds.mdx +15 -0
- package/docs/guides/process/os-signals.mdx +41 -0
- package/docs/guides/process/spawn-stderr.mdx +34 -0
- package/docs/guides/process/spawn-stdout.mdx +28 -0
- package/docs/guides/process/spawn.mdx +43 -0
- package/docs/guides/process/stdin.mdx +62 -0
- package/docs/guides/read-file/arraybuffer.mdx +30 -0
- package/docs/guides/read-file/buffer.mdx +21 -0
- package/docs/guides/read-file/exists.mdx +18 -0
- package/docs/guides/read-file/json.mdx +19 -0
- package/docs/guides/read-file/mime.mdx +22 -0
- package/docs/guides/read-file/stream.mdx +28 -0
- package/docs/guides/read-file/string.mdx +24 -0
- package/docs/guides/read-file/uint8array.mdx +23 -0
- package/docs/guides/read-file/watch.mdx +66 -0
- package/docs/guides/runtime/build-time-constants.mdx +295 -0
- package/docs/guides/runtime/cicd.mdx +45 -0
- package/docs/guides/runtime/codesign-macos-executable.mdx +61 -0
- package/docs/guides/runtime/define-constant.mdx +149 -0
- package/docs/guides/runtime/delete-directory.mdx +39 -0
- package/docs/guides/runtime/delete-file.mdx +21 -0
- package/docs/guides/runtime/heap-snapshot.mdx +28 -0
- package/docs/guides/runtime/import-html.mdx +17 -0
- package/docs/guides/runtime/import-json.mdx +46 -0
- package/docs/guides/runtime/import-toml.mdx +32 -0
- package/docs/guides/runtime/import-yaml.mdx +104 -0
- package/docs/guides/runtime/read-env.mdx +37 -0
- package/docs/guides/runtime/set-env.mdx +51 -0
- package/docs/guides/runtime/shell.mdx +42 -0
- package/docs/guides/runtime/timezone.mdx +38 -0
- package/docs/guides/runtime/tsconfig-paths.mdx +31 -0
- package/docs/guides/runtime/typescript.mdx +51 -0
- package/docs/guides/runtime/vscode-debugger.mdx +48 -0
- package/docs/guides/runtime/web-debugger.mdx +103 -0
- package/docs/guides/streams/node-readable-to-arraybuffer.mdx +13 -0
- package/docs/guides/streams/node-readable-to-blob.mdx +13 -0
- package/docs/guides/streams/node-readable-to-json.mdx +14 -0
- package/docs/guides/streams/node-readable-to-string.mdx +14 -0
- package/docs/guides/streams/node-readable-to-uint8array.mdx +13 -0
- package/docs/guides/streams/to-array.mdx +16 -0
- package/docs/guides/streams/to-arraybuffer.mdx +16 -0
- package/docs/guides/streams/to-blob.mdx +16 -0
- package/docs/guides/streams/to-buffer.mdx +17 -0
- package/docs/guides/streams/to-json.mdx +16 -0
- package/docs/guides/streams/to-string.mdx +16 -0
- package/docs/guides/streams/to-typedarray.mdx +24 -0
- package/docs/guides/test/bail.mdx +24 -0
- package/docs/guides/test/coverage-threshold.mdx +67 -0
- package/docs/guides/test/coverage.mdx +49 -0
- package/docs/guides/test/happy-dom.mdx +73 -0
- package/docs/guides/test/migrate-from-jest.mdx +125 -0
- package/docs/guides/test/mock-clock.mdx +50 -0
- package/docs/guides/test/mock-functions.mdx +70 -0
- package/docs/guides/test/rerun-each.mdx +16 -0
- package/docs/guides/test/run-tests.mdx +116 -0
- package/docs/guides/test/skip-tests.mdx +43 -0
- package/docs/guides/test/snapshot.mdx +102 -0
- package/docs/guides/test/spy-on.mdx +49 -0
- package/docs/guides/test/svelte-test.mdx +113 -0
- package/docs/guides/test/testing-library.mdx +93 -0
- package/docs/guides/test/timeout.mdx +17 -0
- package/docs/guides/test/todo-tests.mdx +74 -0
- package/docs/guides/test/update-snapshots.mdx +49 -0
- package/docs/guides/test/watch-mode.mdx +24 -0
- package/docs/guides/util/base64.mdx +17 -0
- package/docs/guides/util/deep-equals.mdx +41 -0
- package/docs/guides/util/deflate.mdx +20 -0
- package/docs/guides/util/detect-bun.mdx +25 -0
- package/docs/guides/util/entrypoint.mdx +19 -0
- package/docs/guides/util/escape-html.mdx +24 -0
- package/docs/guides/util/file-url-to-path.mdx +16 -0
- package/docs/guides/util/gzip.mdx +20 -0
- package/docs/guides/util/hash-a-password.mdx +56 -0
- package/docs/guides/util/import-meta-dir.mdx +15 -0
- package/docs/guides/util/import-meta-file.mdx +15 -0
- package/docs/guides/util/import-meta-path.mdx +15 -0
- package/docs/guides/util/javascript-uuid.mdx +25 -0
- package/docs/guides/util/main.mdx +43 -0
- package/docs/guides/util/path-to-file-url.mdx +16 -0
- package/docs/guides/util/sleep.mdx +24 -0
- package/docs/guides/util/version.mdx +23 -0
- package/docs/guides/util/which-path-to-executable-bin.mdx +17 -0
- package/docs/guides/websocket/compression.mdx +33 -0
- package/docs/guides/websocket/context.mdx +74 -0
- package/docs/guides/websocket/pubsub.mdx +40 -0
- package/docs/guides/websocket/simple.mdx +35 -0
- package/docs/guides/write-file/append.mdx +54 -0
- package/docs/guides/write-file/basic.mdx +46 -0
- package/docs/guides/write-file/blob.mdx +30 -0
- package/docs/guides/write-file/cat.mdx +19 -0
- package/docs/guides/write-file/file-cp.mdx +18 -0
- package/docs/guides/write-file/filesink.mdx +54 -0
- package/docs/guides/write-file/response.mdx +19 -0
- package/docs/guides/write-file/stdout.mdx +23 -0
- package/docs/guides/write-file/stream.mdx +19 -0
- package/docs/guides/write-file/unlink.mdx +18 -0
- package/docs/index.mdx +133 -0
- package/docs/installation.mdx +365 -0
- package/docs/pm/bunx.mdx +83 -0
- package/docs/pm/catalogs.mdx +292 -0
- package/docs/pm/cli/add.mdx +179 -0
- package/docs/pm/cli/audit.mdx +60 -0
- package/docs/pm/cli/install.mdx +471 -0
- package/docs/pm/cli/link.mdx +48 -0
- package/docs/pm/cli/outdated.mdx +197 -0
- package/docs/pm/cli/patch.mdx +69 -0
- package/docs/pm/cli/pm.mdx +319 -0
- package/docs/pm/cli/publish.mdx +123 -0
- package/docs/pm/cli/remove.mdx +16 -0
- package/docs/pm/cli/update.mdx +140 -0
- package/docs/pm/cli/why.mdx +84 -0
- package/docs/pm/filter.mdx +102 -0
- package/docs/pm/global-cache.mdx +72 -0
- package/docs/pm/isolated-installs.mdx +205 -0
- package/docs/pm/lifecycle.mdx +57 -0
- package/docs/pm/lockfile.mdx +64 -0
- package/docs/pm/npmrc.mdx +111 -0
- package/docs/pm/overrides.mdx +83 -0
- package/docs/pm/scopes-registries.mdx +35 -0
- package/docs/pm/security-scanner-api.mdx +95 -0
- package/docs/pm/workspaces.mdx +109 -0
- package/docs/project/benchmarking.mdx +218 -0
- package/docs/project/bindgen.mdx +223 -0
- package/docs/project/building-windows.mdx +133 -0
- package/docs/project/contributing.mdx +343 -0
- package/docs/project/feedback.mdx +20 -0
- package/docs/project/license.mdx +78 -0
- package/docs/project/roadmap.mdx +8 -0
- package/docs/quickstart.mdx +240 -0
- package/docs/runtime/auto-install.mdx +97 -0
- package/docs/runtime/binary-data.mdx +846 -0
- package/docs/runtime/bun-apis.mdx +59 -0
- package/docs/runtime/bunfig.mdx +642 -0
- package/docs/runtime/c-compiler.mdx +204 -0
- package/docs/runtime/child-process.mdx +532 -0
- package/docs/runtime/color.mdx +267 -0
- package/docs/runtime/console.mdx +67 -0
- package/docs/runtime/cookies.mdx +454 -0
- package/docs/runtime/debugger.mdx +335 -0
- package/docs/runtime/environment-variables.mdx +214 -0
- package/docs/runtime/ffi.mdx +565 -0
- package/docs/runtime/file-io.mdx +306 -0
- package/docs/runtime/file-system-router.mdx +118 -0
- package/docs/runtime/file-types.mdx +354 -0
- package/docs/runtime/glob.mdx +181 -0
- package/docs/runtime/globals.mdx +72 -0
- package/docs/runtime/hashing.mdx +315 -0
- package/docs/runtime/html-rewriter.mdx +340 -0
- package/docs/runtime/http/cookies.mdx +79 -0
- package/docs/runtime/http/error-handling.mdx +40 -0
- package/docs/runtime/http/metrics.mdx +36 -0
- package/docs/runtime/http/routing.mdx +289 -0
- package/docs/runtime/http/server.mdx +647 -0
- package/docs/runtime/http/tls.mdx +101 -0
- package/docs/runtime/http/websockets.mdx +404 -0
- package/docs/runtime/index.mdx +223 -0
- package/docs/runtime/jsx.mdx +115 -0
- package/docs/runtime/module-resolution.mdx +342 -0
- package/docs/runtime/networking/dns.mdx +111 -0
- package/docs/runtime/networking/fetch.mdx +468 -0
- package/docs/runtime/networking/tcp.mdx +239 -0
- package/docs/runtime/networking/udp.mdx +129 -0
- package/docs/runtime/node-api.mdx +19 -0
- package/docs/runtime/nodejs-compat.mdx +468 -0
- package/docs/runtime/plugins.mdx +405 -0
- package/docs/runtime/redis.mdx +582 -0
- package/docs/runtime/s3.mdx +863 -0
- package/docs/runtime/secrets.mdx +336 -0
- package/docs/runtime/semver.mdx +57 -0
- package/docs/runtime/shell.mdx +637 -0
- package/docs/runtime/sql.mdx +1404 -0
- package/docs/runtime/sqlite.mdx +699 -0
- package/docs/runtime/streams.mdx +232 -0
- package/docs/runtime/templating/create.mdx +269 -0
- package/docs/runtime/templating/init.mdx +58 -0
- package/docs/runtime/transpiler.mdx +288 -0
- package/docs/runtime/typescript.mdx +58 -0
- package/docs/runtime/utils.mdx +922 -0
- package/docs/runtime/watch-mode.mdx +161 -0
- package/docs/runtime/web-apis.mdx +29 -0
- package/docs/runtime/workers.mdx +328 -0
- package/docs/runtime/yaml.mdx +469 -0
- package/docs/snippets/cli/add.mdx +166 -0
- package/docs/snippets/cli/build.mdx +196 -0
- package/docs/snippets/cli/feedback.mdx +17 -0
- package/docs/snippets/cli/init.mdx +84 -0
- package/docs/snippets/cli/install.mdx +173 -0
- package/docs/snippets/cli/link.mdx +163 -0
- package/docs/snippets/cli/outdated.mdx +140 -0
- package/docs/snippets/cli/patch.mdx +171 -0
- package/docs/snippets/cli/publish.mdx +198 -0
- package/docs/snippets/cli/remove.mdx +146 -0
- package/docs/snippets/cli/run.mdx +293 -0
- package/docs/snippets/cli/test.mdx +100 -0
- package/docs/snippets/cli/update.mdx +144 -0
- package/docs/snippets/product-card.mdx +32 -0
- package/docs/snippets/product-tiles.mdx +94 -0
- package/docs/test/code-coverage.mdx +409 -0
- package/docs/test/configuration.mdx +467 -0
- package/docs/test/dates-times.mdx +129 -0
- package/docs/test/discovery.mdx +90 -0
- package/docs/test/dom.mdx +226 -0
- package/docs/test/index.mdx +380 -0
- package/docs/test/lifecycle.mdx +348 -0
- package/docs/test/mocks.mdx +637 -0
- package/docs/test/reporters.mdx +117 -0
- package/docs/test/runtime-behavior.mdx +342 -0
- package/docs/test/snapshots.mdx +434 -0
- package/docs/test/writing-tests.mdx +635 -0
- package/docs/typescript.mdx +54 -0
- package/package.json +8 -6
- package/test.d.ts +2 -2
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# CLI Usage
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
bun run <file or script>
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### General Execution Options
|
|
8
|
+
|
|
9
|
+
<ParamField path="--silent" type="boolean">
|
|
10
|
+
Don't print the script command
|
|
11
|
+
</ParamField>
|
|
12
|
+
|
|
13
|
+
<ParamField path="--if-present" type="boolean">
|
|
14
|
+
Exit without an error if the entrypoint does not exist
|
|
15
|
+
</ParamField>
|
|
16
|
+
|
|
17
|
+
<ParamField path="--eval" type="string">
|
|
18
|
+
Evaluate argument as a script. Alias: <code>-e</code>
|
|
19
|
+
</ParamField>
|
|
20
|
+
|
|
21
|
+
<ParamField path="--print" type="string">
|
|
22
|
+
Evaluate argument as a script and print the result. Alias: <code>-p</code>
|
|
23
|
+
</ParamField>
|
|
24
|
+
|
|
25
|
+
<ParamField path="--help" type="boolean">
|
|
26
|
+
Display this menu and exit. Alias: <code>-h</code>
|
|
27
|
+
</ParamField>
|
|
28
|
+
|
|
29
|
+
### Workspace Management
|
|
30
|
+
|
|
31
|
+
<ParamField path="--elide-lines" type="number" default="10">
|
|
32
|
+
Number of lines of script output shown when using --filter (default: 10). Set to 0 to show all lines
|
|
33
|
+
</ParamField>
|
|
34
|
+
|
|
35
|
+
<ParamField path="--filter" type="string">
|
|
36
|
+
Run a script in all workspace packages matching the pattern. Alias: <code>-F</code>
|
|
37
|
+
</ParamField>
|
|
38
|
+
|
|
39
|
+
<ParamField path="--workspaces" type="boolean">
|
|
40
|
+
Run a script in all workspace packages (from the <code>workspaces</code> field in <code>package.json</code>)
|
|
41
|
+
</ParamField>
|
|
42
|
+
|
|
43
|
+
### Runtime & Process Control
|
|
44
|
+
|
|
45
|
+
<ParamField path="--bun" type="boolean">
|
|
46
|
+
Force a script or package to use Bun's runtime instead of Node.js (via symlinking node). Alias: <code>-b</code>
|
|
47
|
+
</ParamField>
|
|
48
|
+
|
|
49
|
+
<ParamField path="--shell" type="string">
|
|
50
|
+
Control the shell used for <code>package.json</code> scripts. Supports either <code>bun</code> or <code>system</code>
|
|
51
|
+
</ParamField>
|
|
52
|
+
|
|
53
|
+
<ParamField path="--smol" type="boolean">
|
|
54
|
+
Use less memory, but run garbage collection more often
|
|
55
|
+
</ParamField>
|
|
56
|
+
|
|
57
|
+
<ParamField path="--expose-gc" type="boolean">
|
|
58
|
+
Expose <code>gc()</code> on the global object. Has no effect on <code>Bun.gc()</code>
|
|
59
|
+
</ParamField>
|
|
60
|
+
|
|
61
|
+
<ParamField path="--no-deprecation" type="boolean">
|
|
62
|
+
Suppress all reporting of the custom deprecation
|
|
63
|
+
</ParamField>
|
|
64
|
+
|
|
65
|
+
<ParamField path="--throw-deprecation" type="boolean">
|
|
66
|
+
Determine whether or not deprecation warnings result in errors
|
|
67
|
+
</ParamField>
|
|
68
|
+
|
|
69
|
+
<ParamField path="--title" type="string">
|
|
70
|
+
Set the process title
|
|
71
|
+
</ParamField>
|
|
72
|
+
|
|
73
|
+
<ParamField path="--zero-fill-buffers" type="boolean">
|
|
74
|
+
Boolean to force <code>Buffer.allocUnsafe(size)</code> to be zero-filled
|
|
75
|
+
</ParamField>
|
|
76
|
+
|
|
77
|
+
<ParamField path="--no-addons" type="boolean">
|
|
78
|
+
Throw an error if <code>process.dlopen</code> is called, and disable export condition <code>node-addons</code>
|
|
79
|
+
</ParamField>
|
|
80
|
+
|
|
81
|
+
<ParamField path="--unhandled-rejections" type="string">
|
|
82
|
+
One of <code>strict</code>, <code>throw</code>, <code>warn</code>, <code>none</code>, or{" "}
|
|
83
|
+
<code>warn-with-error-code</code>
|
|
84
|
+
</ParamField>
|
|
85
|
+
|
|
86
|
+
<ParamField path="--console-depth" type="number" default="2">
|
|
87
|
+
Set the default depth for <code>console.log</code> object inspection (default: 2)
|
|
88
|
+
</ParamField>
|
|
89
|
+
|
|
90
|
+
### Development Workflow
|
|
91
|
+
|
|
92
|
+
<ParamField path="--watch" type="boolean">
|
|
93
|
+
Automatically restart the process on file change
|
|
94
|
+
</ParamField>
|
|
95
|
+
|
|
96
|
+
<ParamField path="--hot" type="boolean">
|
|
97
|
+
Enable auto reload in the Bun runtime, test runner, or bundler
|
|
98
|
+
</ParamField>
|
|
99
|
+
|
|
100
|
+
<ParamField path="--no-clear-screen" type="boolean">
|
|
101
|
+
Disable clearing the terminal screen on reload when --hot or --watch is enabled
|
|
102
|
+
</ParamField>
|
|
103
|
+
|
|
104
|
+
### Debugging
|
|
105
|
+
|
|
106
|
+
<ParamField path="--inspect" type="string">
|
|
107
|
+
Activate Bun's debugger
|
|
108
|
+
</ParamField>
|
|
109
|
+
|
|
110
|
+
<ParamField path="--inspect-wait" type="string">
|
|
111
|
+
Activate Bun's debugger, wait for a connection before executing
|
|
112
|
+
</ParamField>
|
|
113
|
+
|
|
114
|
+
<ParamField path="--inspect-brk" type="string">
|
|
115
|
+
Activate Bun's debugger, set breakpoint on first line of code and wait
|
|
116
|
+
</ParamField>
|
|
117
|
+
|
|
118
|
+
### Dependency & Module Resolution
|
|
119
|
+
|
|
120
|
+
<ParamField path="--preload" type="string">
|
|
121
|
+
Import a module before other modules are loaded. Alias: <code>-r</code>
|
|
122
|
+
</ParamField>
|
|
123
|
+
|
|
124
|
+
<ParamField path="--require" type="string">
|
|
125
|
+
Alias of --preload, for Node.js compatibility
|
|
126
|
+
</ParamField>
|
|
127
|
+
|
|
128
|
+
<ParamField path="--import" type="string">
|
|
129
|
+
Alias of --preload, for Node.js compatibility
|
|
130
|
+
</ParamField>
|
|
131
|
+
|
|
132
|
+
<ParamField path="--no-install" type="boolean">
|
|
133
|
+
Disable auto install in the Bun runtime
|
|
134
|
+
</ParamField>
|
|
135
|
+
|
|
136
|
+
<ParamField path="--install" type="string" default="auto">
|
|
137
|
+
Configure auto-install behavior. One of <code>auto</code> (default, auto-installs when no node_modules),{" "}
|
|
138
|
+
<code>fallback</code> (missing packages only), <code>force</code> (always)
|
|
139
|
+
</ParamField>
|
|
140
|
+
|
|
141
|
+
<ParamField path="-i" type="boolean">
|
|
142
|
+
Auto-install dependencies during execution. Equivalent to --install=fallback
|
|
143
|
+
</ParamField>
|
|
144
|
+
|
|
145
|
+
<ParamField path="--prefer-offline" type="boolean">
|
|
146
|
+
Skip staleness checks for packages in the Bun runtime and resolve from disk
|
|
147
|
+
</ParamField>
|
|
148
|
+
|
|
149
|
+
<ParamField path="--prefer-latest" type="boolean">
|
|
150
|
+
Use the latest matching versions of packages in the Bun runtime, always checking npm
|
|
151
|
+
</ParamField>
|
|
152
|
+
|
|
153
|
+
<ParamField path="--conditions" type="string">
|
|
154
|
+
Pass custom conditions to resolve
|
|
155
|
+
</ParamField>
|
|
156
|
+
|
|
157
|
+
<ParamField path="--main-fields" type="string">
|
|
158
|
+
Main fields to lookup in <code>package.json</code>. Defaults to --target dependent
|
|
159
|
+
</ParamField>
|
|
160
|
+
|
|
161
|
+
<ParamField path="--preserve-symlinks" type="boolean">
|
|
162
|
+
Preserve symlinks when resolving files
|
|
163
|
+
</ParamField>
|
|
164
|
+
|
|
165
|
+
<ParamField path="--preserve-symlinks-main" type="boolean">
|
|
166
|
+
Preserve symlinks when resolving the main entry point
|
|
167
|
+
</ParamField>
|
|
168
|
+
|
|
169
|
+
<ParamField path="--extension-order" type="string" default=".tsx,.ts,.jsx,.js,.json">
|
|
170
|
+
Defaults to: <code>.tsx,.ts,.jsx,.js,.json</code>
|
|
171
|
+
</ParamField>
|
|
172
|
+
|
|
173
|
+
### Transpilation & Language Features
|
|
174
|
+
|
|
175
|
+
<ParamField path="--tsconfig-override" type="string">
|
|
176
|
+
Specify custom <code>tsconfig.json</code>. Default <code>$cwd/tsconfig.json</code>
|
|
177
|
+
</ParamField>
|
|
178
|
+
|
|
179
|
+
<ParamField path="--define" type="string">
|
|
180
|
+
Substitute K:V while parsing, e.g. <code>--define process.env.NODE_ENV:"development"</code>. Values are parsed as
|
|
181
|
+
JSON. Alias: <code>-d</code>
|
|
182
|
+
</ParamField>
|
|
183
|
+
|
|
184
|
+
<ParamField path="--drop" type="string">
|
|
185
|
+
Remove function calls, e.g. <code>--drop=console</code> removes all <code>console.*</code> calls
|
|
186
|
+
</ParamField>
|
|
187
|
+
|
|
188
|
+
<ParamField path="--loader" type="string">
|
|
189
|
+
Parse files with <code>.ext:loader</code>, e.g. <code>--loader .js:jsx</code>. Valid loaders: <code>js</code>,{" "}
|
|
190
|
+
<code>jsx</code>, <code>ts</code>, <code>tsx</code>, <code>json</code>, <code>toml</code>, <code>text</code>,{" "}
|
|
191
|
+
<code>file</code>, <code>wasm</code>, <code>napi</code>. Alias: <code>-l</code>
|
|
192
|
+
</ParamField>
|
|
193
|
+
|
|
194
|
+
<ParamField path="--no-macros" type="boolean">
|
|
195
|
+
Disable macros from being executed in the bundler, transpiler and runtime
|
|
196
|
+
</ParamField>
|
|
197
|
+
|
|
198
|
+
<ParamField path="--jsx-factory" type="string">
|
|
199
|
+
Changes the function called when compiling JSX elements using the classic JSX runtime
|
|
200
|
+
</ParamField>
|
|
201
|
+
|
|
202
|
+
<ParamField path="--jsx-fragment" type="string">
|
|
203
|
+
Changes the function called when compiling JSX fragments
|
|
204
|
+
</ParamField>
|
|
205
|
+
|
|
206
|
+
<ParamField path="--jsx-import-source" type="string" default="react">
|
|
207
|
+
Declares the module specifier to be used for importing the jsx and jsxs factory functions. Default: <code>react</code>
|
|
208
|
+
</ParamField>
|
|
209
|
+
|
|
210
|
+
<ParamField path="--jsx-runtime" type="string" default="automatic">
|
|
211
|
+
<code>automatic</code> (default) or <code>classic</code>
|
|
212
|
+
</ParamField>
|
|
213
|
+
|
|
214
|
+
<ParamField path="--jsx-side-effects" type="boolean">
|
|
215
|
+
Treat JSX elements as having side effects (disable pure annotations)
|
|
216
|
+
</ParamField>
|
|
217
|
+
|
|
218
|
+
<ParamField path="--ignore-dce-annotations" type="boolean">
|
|
219
|
+
Ignore tree-shaking annotations such as <code>@__PURE__</code>
|
|
220
|
+
</ParamField>
|
|
221
|
+
|
|
222
|
+
### Networking & Security
|
|
223
|
+
|
|
224
|
+
<ParamField path="--port" type="number">
|
|
225
|
+
Set the default port for <code>Bun.serve</code>
|
|
226
|
+
</ParamField>
|
|
227
|
+
|
|
228
|
+
<ParamField path="--fetch-preconnect" type="string">
|
|
229
|
+
Preconnect to a URL while code is loading
|
|
230
|
+
</ParamField>
|
|
231
|
+
|
|
232
|
+
<ParamField path="--max-http-header-size" type="number" default="16384">
|
|
233
|
+
Set the maximum size of HTTP headers in bytes. Default is 16KiB
|
|
234
|
+
</ParamField>
|
|
235
|
+
|
|
236
|
+
<ParamField path="--dns-result-order" type="string" default="verbatim">
|
|
237
|
+
Set the default order of DNS lookup results. Valid orders: <code>verbatim</code> (default), <code>ipv4first</code>,{" "}
|
|
238
|
+
<code>ipv6first</code>
|
|
239
|
+
</ParamField>
|
|
240
|
+
|
|
241
|
+
<ParamField path="--use-system-ca" type="boolean">
|
|
242
|
+
Use the system's trusted certificate authorities
|
|
243
|
+
</ParamField>
|
|
244
|
+
|
|
245
|
+
<ParamField path="--use-openssl-ca" type="boolean">
|
|
246
|
+
Use OpenSSL's default CA store
|
|
247
|
+
</ParamField>
|
|
248
|
+
|
|
249
|
+
<ParamField path="--use-bundled-ca" type="boolean">
|
|
250
|
+
Use bundled CA store
|
|
251
|
+
</ParamField>
|
|
252
|
+
|
|
253
|
+
<ParamField path="--redis-preconnect" type="boolean">
|
|
254
|
+
Preconnect to <code>$REDIS_URL</code> at startup
|
|
255
|
+
</ParamField>
|
|
256
|
+
|
|
257
|
+
<ParamField path="--sql-preconnect" type="boolean">
|
|
258
|
+
Preconnect to PostgreSQL at startup
|
|
259
|
+
</ParamField>
|
|
260
|
+
|
|
261
|
+
<ParamField path="--user-agent" type="string">
|
|
262
|
+
Set the default User-Agent header for HTTP requests
|
|
263
|
+
</ParamField>
|
|
264
|
+
|
|
265
|
+
### Global Configuration & Context
|
|
266
|
+
|
|
267
|
+
<ParamField path="--env-file" type="string">
|
|
268
|
+
Load environment variables from the specified file(s)
|
|
269
|
+
</ParamField>
|
|
270
|
+
|
|
271
|
+
<ParamField path="--cwd" type="string">
|
|
272
|
+
Absolute path to resolve files & entry points from. This just changes the process' cwd
|
|
273
|
+
</ParamField>
|
|
274
|
+
|
|
275
|
+
<ParamField path="--config" type="string">
|
|
276
|
+
Specify path to Bun config file. Default <code>$cwd/bunfig.toml</code>. Alias: <code>-c</code>
|
|
277
|
+
</ParamField>
|
|
278
|
+
|
|
279
|
+
## Examples
|
|
280
|
+
|
|
281
|
+
Run a JavaScript or TypeScript file:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
bun run ./index.js
|
|
285
|
+
bun run ./index.tsx
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Run a package.json script:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
bun run dev
|
|
292
|
+
bun run lint
|
|
293
|
+
```
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# CLI Usage
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
bun test <patterns>
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Execution Control
|
|
8
|
+
|
|
9
|
+
<ParamField path="--timeout" type="number" default="5000">
|
|
10
|
+
Set the per-test timeout in milliseconds (default 5000)
|
|
11
|
+
</ParamField>
|
|
12
|
+
|
|
13
|
+
<ParamField path="--rerun-each" type="number">
|
|
14
|
+
Re-run each test file <code>NUMBER</code> times, helps catch certain bugs
|
|
15
|
+
</ParamField>
|
|
16
|
+
|
|
17
|
+
<ParamField path="--concurrent" type="boolean">
|
|
18
|
+
Treat all tests as <code>test.concurrent()</code> tests
|
|
19
|
+
</ParamField>
|
|
20
|
+
|
|
21
|
+
<ParamField path="--randomize" type="boolean">
|
|
22
|
+
Run tests in random order
|
|
23
|
+
</ParamField>
|
|
24
|
+
|
|
25
|
+
<ParamField path="--seed" type="number">
|
|
26
|
+
Set the random seed for test randomization
|
|
27
|
+
</ParamField>
|
|
28
|
+
|
|
29
|
+
<ParamField path="--bail" type="number" default="1">
|
|
30
|
+
Exit the test suite after <code>NUMBER</code> failures. If you do not specify a number, it defaults to 1.
|
|
31
|
+
</ParamField>
|
|
32
|
+
|
|
33
|
+
<ParamField path="--max-concurrency" type="number" default="20">
|
|
34
|
+
Maximum number of concurrent tests to execute at once (default 20)
|
|
35
|
+
</ParamField>
|
|
36
|
+
|
|
37
|
+
### Test Filtering
|
|
38
|
+
|
|
39
|
+
<ParamField path="--todo" type="boolean">
|
|
40
|
+
Include tests that are marked with <code>test.todo()</code>
|
|
41
|
+
</ParamField>
|
|
42
|
+
|
|
43
|
+
<ParamField path="--test-name-pattern" type="string">
|
|
44
|
+
Run only tests with a name that matches the given regex. Alias: <code>-t</code>
|
|
45
|
+
</ParamField>
|
|
46
|
+
|
|
47
|
+
### Reporting
|
|
48
|
+
|
|
49
|
+
<ParamField path="--reporter" type="string">
|
|
50
|
+
Test output reporter format. Available: <code>junit</code> (requires --reporter-outfile), <code>dots</code>. Default:
|
|
51
|
+
console output.
|
|
52
|
+
</ParamField>
|
|
53
|
+
|
|
54
|
+
<ParamField path="--reporter-outfile" type="string">
|
|
55
|
+
Output file path for the reporter format (required with --reporter)
|
|
56
|
+
</ParamField>
|
|
57
|
+
|
|
58
|
+
<ParamField path="--dots" type="boolean">
|
|
59
|
+
Enable dots reporter. Shorthand for --reporter=dots
|
|
60
|
+
</ParamField>
|
|
61
|
+
|
|
62
|
+
### Coverage
|
|
63
|
+
|
|
64
|
+
<ParamField path="--coverage" type="boolean">
|
|
65
|
+
Generate a coverage profile
|
|
66
|
+
</ParamField>
|
|
67
|
+
|
|
68
|
+
<ParamField path="--coverage-reporter" type="string" default="text">
|
|
69
|
+
Report coverage in <code>text</code> and/or <code>lcov</code>. Defaults to <code>text</code>
|
|
70
|
+
</ParamField>
|
|
71
|
+
|
|
72
|
+
<ParamField path="--coverage-dir" type="string" default="coverage">
|
|
73
|
+
Directory for coverage files. Defaults to <code>coverage</code>
|
|
74
|
+
</ParamField>
|
|
75
|
+
|
|
76
|
+
### Snapshots
|
|
77
|
+
|
|
78
|
+
<ParamField path="--update-snapshots" type="boolean">
|
|
79
|
+
Update snapshot files. Alias: <code>-u</code>
|
|
80
|
+
</ParamField>
|
|
81
|
+
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
Run all test files:
|
|
85
|
+
|
|
86
|
+
```bash terminal icon="terminal"
|
|
87
|
+
bun test
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Run all test files with "foo" or "bar" in the file name:
|
|
91
|
+
|
|
92
|
+
```bash terminal icon="terminal"
|
|
93
|
+
bun test foo bar
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Run all test files, only including tests whose names includes "baz":
|
|
97
|
+
|
|
98
|
+
```bash terminal icon="terminal"
|
|
99
|
+
bun test --test-name-pattern baz
|
|
100
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
## CLI Usage
|
|
2
|
+
|
|
3
|
+
```bash terminal icon="terminal"
|
|
4
|
+
bun update <package> <version>
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Update Strategy
|
|
8
|
+
|
|
9
|
+
<ParamField path="--force" type="boolean">
|
|
10
|
+
Always request the latest versions from the registry & reinstall all dependencies. Alias: <code>-f</code>
|
|
11
|
+
</ParamField>
|
|
12
|
+
|
|
13
|
+
<ParamField path="--latest" type="boolean">
|
|
14
|
+
Update packages to their latest versions
|
|
15
|
+
</ParamField>
|
|
16
|
+
|
|
17
|
+
### Dependency Scope
|
|
18
|
+
|
|
19
|
+
<ParamField path="--production" type="boolean">
|
|
20
|
+
Don't install devDependencies. Alias: <code>-p</code>
|
|
21
|
+
</ParamField>
|
|
22
|
+
|
|
23
|
+
<ParamField path="--global" type="boolean">
|
|
24
|
+
Install globally. Alias: <code>-g</code>
|
|
25
|
+
</ParamField>
|
|
26
|
+
|
|
27
|
+
<ParamField path="--omit" type="string">
|
|
28
|
+
Exclude <code>dev</code>, <code>optional</code>, or <code>peer</code> dependencies from install
|
|
29
|
+
</ParamField>
|
|
30
|
+
|
|
31
|
+
### Project File Management
|
|
32
|
+
|
|
33
|
+
<ParamField path="--yarn" type="boolean">
|
|
34
|
+
Write a <code>yarn.lock</code> file (yarn v1). Alias: <code>-y</code>
|
|
35
|
+
</ParamField>
|
|
36
|
+
|
|
37
|
+
<ParamField path="--no-save" type="boolean">
|
|
38
|
+
Don't update <code>package.json</code> or save a lockfile
|
|
39
|
+
</ParamField>
|
|
40
|
+
|
|
41
|
+
<ParamField path="--save" type="boolean" default="true">
|
|
42
|
+
Save to <code>package.json</code> (true by default)
|
|
43
|
+
</ParamField>
|
|
44
|
+
|
|
45
|
+
<ParamField path="--frozen-lockfile" type="boolean">
|
|
46
|
+
Disallow changes to lockfile
|
|
47
|
+
</ParamField>
|
|
48
|
+
|
|
49
|
+
<ParamField path="--save-text-lockfile" type="boolean">
|
|
50
|
+
Save a text-based lockfile
|
|
51
|
+
</ParamField>
|
|
52
|
+
|
|
53
|
+
<ParamField path="--lockfile-only" type="boolean">
|
|
54
|
+
Generate a lockfile without installing dependencies
|
|
55
|
+
</ParamField>
|
|
56
|
+
|
|
57
|
+
### Network & Registry
|
|
58
|
+
|
|
59
|
+
<ParamField path="--ca" type="string">
|
|
60
|
+
Provide a Certificate Authority signing certificate
|
|
61
|
+
</ParamField>
|
|
62
|
+
|
|
63
|
+
<ParamField path="--cafile" type="string">
|
|
64
|
+
Same as <code>--ca</code>, but as a file path to the certificate
|
|
65
|
+
</ParamField>
|
|
66
|
+
|
|
67
|
+
<ParamField path="--registry" type="string">
|
|
68
|
+
Use a specific registry by default, overriding <code>.npmrc</code>, <code>bunfig.toml</code> and environment variables
|
|
69
|
+
</ParamField>
|
|
70
|
+
|
|
71
|
+
<ParamField path="--network-concurrency" type="number" default="48">
|
|
72
|
+
Maximum number of concurrent network requests (default 48)
|
|
73
|
+
</ParamField>
|
|
74
|
+
|
|
75
|
+
### Caching
|
|
76
|
+
|
|
77
|
+
<ParamField path="--cache-dir" type="string">
|
|
78
|
+
Store & load cached data from a specific directory path
|
|
79
|
+
</ParamField>
|
|
80
|
+
|
|
81
|
+
<ParamField path="--no-cache" type="boolean">
|
|
82
|
+
Ignore manifest cache entirely
|
|
83
|
+
</ParamField>
|
|
84
|
+
|
|
85
|
+
### Output & Logging
|
|
86
|
+
|
|
87
|
+
<ParamField path="--silent" type="boolean">
|
|
88
|
+
Don't log anything
|
|
89
|
+
</ParamField>
|
|
90
|
+
|
|
91
|
+
<ParamField path="--verbose" type="boolean">
|
|
92
|
+
Excessively verbose logging
|
|
93
|
+
</ParamField>
|
|
94
|
+
|
|
95
|
+
<ParamField path="--no-progress" type="boolean">
|
|
96
|
+
Disable the progress bar
|
|
97
|
+
</ParamField>
|
|
98
|
+
|
|
99
|
+
<ParamField path="--no-summary" type="boolean">
|
|
100
|
+
Don't print a summary
|
|
101
|
+
</ParamField>
|
|
102
|
+
|
|
103
|
+
### Script Execution
|
|
104
|
+
|
|
105
|
+
<ParamField path="--ignore-scripts" type="boolean">
|
|
106
|
+
Skip lifecycle scripts in the project's <code>package.json</code> (dependency scripts are never run)
|
|
107
|
+
</ParamField>
|
|
108
|
+
|
|
109
|
+
<ParamField path="--concurrent-scripts" type="number" default="5">
|
|
110
|
+
Maximum number of concurrent jobs for lifecycle scripts (default 5)
|
|
111
|
+
</ParamField>
|
|
112
|
+
|
|
113
|
+
### Installation Controls
|
|
114
|
+
|
|
115
|
+
<ParamField path="--no-verify" type="boolean">
|
|
116
|
+
Skip verifying integrity of newly downloaded packages
|
|
117
|
+
</ParamField>
|
|
118
|
+
|
|
119
|
+
<ParamField path="--trust" type="boolean">
|
|
120
|
+
Add to <code>trustedDependencies</code> in the project's <code>package.json</code> and install the package(s)
|
|
121
|
+
</ParamField>
|
|
122
|
+
|
|
123
|
+
<ParamField path="--backend" type="string" default="clonefile">
|
|
124
|
+
Platform-specific optimizations for installing dependencies. Possible values: <code>clonefile</code> (default),{" "}
|
|
125
|
+
<code>hardlink</code>, <code>symlink</code>, <code>copyfile</code>
|
|
126
|
+
</ParamField>
|
|
127
|
+
|
|
128
|
+
### General & Environment
|
|
129
|
+
|
|
130
|
+
<ParamField path="--config" type="string">
|
|
131
|
+
Specify path to config file (<code>bunfig.toml</code>). Alias: <code>-c</code>
|
|
132
|
+
</ParamField>
|
|
133
|
+
|
|
134
|
+
<ParamField path="--dry-run" type="boolean">
|
|
135
|
+
Don't install anything
|
|
136
|
+
</ParamField>
|
|
137
|
+
|
|
138
|
+
<ParamField path="--cwd" type="string">
|
|
139
|
+
Set a specific cwd
|
|
140
|
+
</ParamField>
|
|
141
|
+
|
|
142
|
+
<ParamField path="--help" type="boolean">
|
|
143
|
+
Print this help menu. Alias: <code>-h</code>
|
|
144
|
+
</ParamField>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const ProductCard = ({ img, href, title, description, model, type }) => {
|
|
2
|
+
return (
|
|
3
|
+
<a href={href} target="_blank" rel="noopener noreferrer" className="group">
|
|
4
|
+
<div className="flex flex-col gap-4 rounded-xl md:p-1">
|
|
5
|
+
<div className="w-full h-32 overflow-hidden rounded-xl bg-gray-100 dark:bg-gray-800">
|
|
6
|
+
<img
|
|
7
|
+
src={img}
|
|
8
|
+
className="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
9
|
+
alt={title}
|
|
10
|
+
loading="lazy"
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
13
|
+
<div className="flex flex-col gap-3 pb-2">
|
|
14
|
+
<h2 className="text-md font-medium text-gray-900 dark:text-gray-200 group-hover:text-gray-600 dark:group-hover:text-gray-400 transition-colors mb-[-8px]">
|
|
15
|
+
{title}
|
|
16
|
+
</h2>
|
|
17
|
+
<p className="text-gray-500 dark:text-gray-400 text-sm font-medium">{description}</p>
|
|
18
|
+
<div className="flex gap-2 mt-2 mb-1">
|
|
19
|
+
<span className="bg-gray-100 dark:bg-[#181817] text-gray-600 dark:text-white rounded-lg px-2 py-1 text-sm font-medium">
|
|
20
|
+
{model}
|
|
21
|
+
</span>
|
|
22
|
+
<span className="bg-primary-light dark:bg-primary-dark text-white dark:text-white rounded-lg px-2 py-1 text-sm font-medium">
|
|
23
|
+
{type}
|
|
24
|
+
</span>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</a>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export const ProductTiles = ({ categories, hideButtons = false }) => {
|
|
2
|
+
const [activeCategory, setActiveCategory] = useState(categories[0].id)
|
|
3
|
+
const [activeSubTab, setActiveSubTab] = useState(
|
|
4
|
+
categories[0].items[0]?.id ?? null
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
const currentCategory = categories.find((cat) => cat.id === activeCategory)
|
|
8
|
+
const currentSub = currentCategory?.items.find(
|
|
9
|
+
(item) => item.id === activeSubTab
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
|
|
14
|
+
<div className="not-prose space-y-6">
|
|
15
|
+
{!hideButtons && (
|
|
16
|
+
<div className="flex flex-wrap gap-2">
|
|
17
|
+
{categories.map((cat) => (
|
|
18
|
+
<button
|
|
19
|
+
key={cat.id}
|
|
20
|
+
onClick={() => {
|
|
21
|
+
setActiveCategory(cat.id)
|
|
22
|
+
setActiveSubTab(cat.items[0]?.id ?? null)
|
|
23
|
+
}}
|
|
24
|
+
className={`px-4 py-2 text-sm rounded-full font-medium transition-colors ${activeCategory === cat.id
|
|
25
|
+
? 'bg-[#0A0B0D] text-white dark:bg-white dark:text-[#0A0B0D] border-black'
|
|
26
|
+
: 'bg-gray-100 dark:bg-white/10 text-black dark:text-white'
|
|
27
|
+
}`} >
|
|
28
|
+
{cat.label}
|
|
29
|
+
</button>
|
|
30
|
+
))}
|
|
31
|
+
</div>
|
|
32
|
+
)}
|
|
33
|
+
|
|
34
|
+
<div>
|
|
35
|
+
{currentCategory?.items?.length ? (
|
|
36
|
+
<div className="flex flex-col lg:flex-row gap-6 bg-gray-100 dark:bg-[#141414] rounded-2xl">
|
|
37
|
+
<div className="flex flex-col w-full lg:w-1/2 space-y-2 p-4">
|
|
38
|
+
{currentCategory.items.map((item) => (
|
|
39
|
+
<a
|
|
40
|
+
key={item.id}
|
|
41
|
+
href={item.href}
|
|
42
|
+
onMouseOver={() => setActiveSubTab(item.id)}
|
|
43
|
+
className={`flex items-start gap-1.5 text-left px-5 py-3 rounded-2xl transition-all ${activeSubTab === item.id
|
|
44
|
+
? 'bg-white dark:bg-white/5'
|
|
45
|
+
: ''
|
|
46
|
+
}`}
|
|
47
|
+
>
|
|
48
|
+
<div className="text-xl mr-3 mt-1"><img src={item.icon} alt={item.title} className="w-8 h-8" /></div>
|
|
49
|
+
<div className="flex-1">
|
|
50
|
+
<h3 className="font-medium text-base text-black dark:text-white">
|
|
51
|
+
{item.title}
|
|
52
|
+
</h3>
|
|
53
|
+
<p className="text-sm text-gray-600 dark:text-gray-400">{item.desc}</p>
|
|
54
|
+
</div>
|
|
55
|
+
<div className={`flex items-center justify-center min-w-[24px] self-center ${activeSubTab === item.id ? 'opacity-100' : 'opacity-0'}`}>
|
|
56
|
+
<div className="hidden dark:block">
|
|
57
|
+
<Icon icon="chevron-right" size="14" color="#FFF" />
|
|
58
|
+
</div>
|
|
59
|
+
<div className="block dark:hidden">
|
|
60
|
+
<Icon icon="chevron-right" size="14" color="#0A0B0D" />
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</a>
|
|
64
|
+
))}
|
|
65
|
+
</div>
|
|
66
|
+
<div className="group w-full h-fit lg:w-1/2 rounded-2xl flex items-center justify-center overflow-hidden min-h-[320px] p-4">
|
|
67
|
+
{currentSub?.image ? (
|
|
68
|
+
<>
|
|
69
|
+
<img
|
|
70
|
+
src={currentSub.image.light}
|
|
71
|
+
alt={currentSub.title}
|
|
72
|
+
className="block dark:hidden w-full h-full object-cover rounded-xl"
|
|
73
|
+
/>
|
|
74
|
+
<img
|
|
75
|
+
src={currentSub.image.dark}
|
|
76
|
+
alt={currentSub.title}
|
|
77
|
+
className="hidden dark:block w-full h-full object-cover rounded-xl"
|
|
78
|
+
/>
|
|
79
|
+
</>
|
|
80
|
+
) : (
|
|
81
|
+
<p className="text-gray-400 dark:text-gray-500 p-8">No preview available</p>
|
|
82
|
+
)}
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
) : (
|
|
86
|
+
<p className="text-sm text-gray-500 dark:text-gray-400">
|
|
87
|
+
No features available for this category.
|
|
88
|
+
</p>
|
|
89
|
+
)}
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
)
|
|
94
|
+
}
|