Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
TypeScript
at icy/tmrrpn
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394import tailwindcss from "@tailwindcss/vite";import { sveltekit } from "@sveltejs/kit/vite";import Icons from "unplugin-icons/vite";import { defineConfig } from "vitest/config";import oauthMetadata from "./src/lib/oauth-client-metadata.json";import path from "node:path";import { fileURLToPath } from "node:url";import { storybookTest } from "@storybook/addon-vitest/vitest-plugin";import { playwright } from "@vitest/browser-playwright";const dirname = typeof __dirname !== "undefined" ? __dirname : path.dirname(fileURLToPath(import.meta.url));
// More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addonconst devHost = process.env.VITE_DEV_HOST ?? "127.0.0.1";const devPort = Number(process.env.VITE_DEV_PORT ?? 5173);// docker desktop's macos file sharing never forwards inotify to the container,// so an edit on the host lands on disk but the watcher never fires and hmr goes// stale. polling is the only way to see those writes, and only the container// needs itconst watch = process.env.VITE_WATCH_POLL === "true" ? { usePolling: true, interval: 300 } : undefined;const devRedirectUri = `http://127.0.0.1:${devPort}/oauth/callback`;const devClientId = `http://localhost?redirect_uri=${encodeURIComponent(devRedirectUri)}&scope=${encodeURIComponent(oauthMetadata.scope)}`;export default defineConfig({ plugins: [ { name: "oauth-env", config(_config, { command }) { process.env.VITE_OAUTH_CLIENT_ID ??= command === "serve" ? devClientId : oauthMetadata.client_id; process.env.VITE_OAUTH_REDIRECT_URI ??= command === "serve" ? devRedirectUri : oauthMetadata.redirect_uris[0]; process.env.VITE_OAUTH_SCOPE ??= oauthMetadata.scope; } }, tailwindcss(), Icons({ compiler: "svelte" }), sveltekit() ], resolve: { alias: { "$icon/": "~icons/lucide/" } }, server: { host: devHost, port: devPort, strictPort: true, allowedHosts: [".ts.net"], watch }, test: { expect: { requireAssertions: true }, projects: [ { extends: "./vite.config.ts", test: { name: "server", environment: "node", include: ["src/**/*.{test,spec}.{js,ts}"], exclude: ["src/**/*.svelte.{test,spec}.{js,ts}"] } }, { extends: true, plugins: [ // The plugin will run tests for the stories defined in your Storybook config // See options at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon#storybooktest storybookTest({ configDir: path.join(dirname, ".storybook") }) ], test: { name: "storybook", browser: { enabled: true, headless: true, provider: playwright({}), instances: [ { browser: "chromium" } ] } } } ] }});