import { readFileSync } from "node:fs"; import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { tanstackRouter } from "@tanstack/router-plugin/vite"; // https://vite.dev/config/ export default defineConfig({ plugins: [ tanstackRouter({ target: "react", routesDirectory: "./src/app/routes", generatedRouteTree: "./src/app/routeTree.gen.ts", virtualRouteConfig: "./src/app/routes.ts", quoteStyle: "double", semicolons: true, routeTreeFileHeader: [ "// biome-ignore-all lint: generated by TanStack Router", ], }), react(), { name: "invite-preview-media", generateBundle() { for (const [source, output] of [ ["buzz-invite-loop.mp4", "buzz-invite-loop-v1.mp4"], ["buzz-invite-poster.png", "buzz-invite-poster-v1.png"], ]) { this.emitFile({ type: "asset", fileName: `assets/invite-preview/${output}`, source: readFileSync( new URL(`../previews/invite-video/${source}`, import.meta.url), ), }); } }, }, ], resolve: { alias: { "@": "/src", }, }, server: { port: parseInt(process.env.VITE_PORT || "5173", 10), strictPort: true, }, });