-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathvite.config.ts
More file actions
87 lines (85 loc) · 2.33 KB
/
vite.config.ts
File metadata and controls
87 lines (85 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { sveltekit } from "@sveltejs/kit/vite";
import Icons from "unplugin-icons/vite";
import { promises } from "fs";
import { defineConfig } from "vitest/config";
import { config } from "dotenv";
config({ path: "./.env.local" });
// used to load fonts server side for thumbnail generation
function loadTTFAsArrayBuffer() {
return {
name: "load-ttf-as-array-buffer",
async transform(_src, id) {
if (id.endsWith(".ttf")) {
return `export default new Uint8Array([
${new Uint8Array(await promises.readFile(id))}
]).buffer`;
}
},
};
}
export default defineConfig({
plugins: [
sveltekit(),
Icons({
compiler: "svelte",
}),
loadTTFAsArrayBuffer(),
],
// Allow external access via ngrok tunnel host
server: {
port: process.env.PORT ? parseInt(process.env.PORT) : 5173,
// Allow any ngrok-free.app subdomain (dynamic tunnels)
// See Vite server.allowedHosts: string[] | true
// Using leading dot matches subdomains per Vite's host check logic
allowedHosts: ["huggingface.ngrok.io"],
},
optimizeDeps: {
include: ["uuid", "sharp", "clsx"],
},
test: {
workspace: [
...(process.env.VITEST_BROWSER === "true"
? [
{
// Client-side tests (Svelte components), opt-in due flaky browser harness in CI/local
extends: "./vite.config.ts",
test: {
name: "client",
environment: "browser",
browser: {
enabled: true,
provider: "playwright",
instances: [{ browser: "chromium", headless: true }],
},
include: ["src/**/*.svelte.{test,spec}.{js,ts}"],
exclude: ["src/lib/server/**", "src/**/*.ssr.{test,spec}.{js,ts}"],
setupFiles: ["./scripts/setups/vitest-setup-client.ts"],
},
},
]
: []),
{
// SSR tests (Server-side rendering)
extends: "./vite.config.ts",
test: {
name: "ssr",
environment: "node",
include: ["src/**/*.ssr.{test,spec}.{js,ts}"],
},
},
{
// Server-side tests (Node.js utilities)
extends: "./vite.config.ts",
test: {
name: "server",
environment: "node",
include: ["src/**/*.{test,spec}.{js,ts}"],
exclude: ["src/**/*.svelte.{test,spec}.{js,ts}", "src/**/*.ssr.{test,spec}.{js,ts}"],
setupFiles: ["./scripts/setups/vitest-setup-server.ts"],
testTimeout: 30000,
hookTimeout: 30000,
},
},
],
},
});