| 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" }); |
|
|
| |
| 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(), |
| ], |
| |
| server: { |
| port: process.env.PORT ? parseInt(process.env.PORT) : 5173, |
| |
| |
| |
| allowedHosts: ["huggingface.ngrok.io"], |
| }, |
| optimizeDeps: { |
| include: ["uuid", "sharp", "@gradio/client", "clsx"], |
| }, |
| test: { |
| workspace: [ |
| { |
| |
| 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"], |
| }, |
| }, |
| { |
| |
| extends: "./vite.config.ts", |
| test: { |
| name: "ssr", |
| environment: "node", |
| include: ["src/**/*.ssr.{test,spec}.{js,ts}"], |
| }, |
| }, |
| { |
| |
| 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"], |
| }, |
| }, |
| ], |
| }, |
| }); |
|
|