Files
Reactive-Resume/apps/web/vite.config.ts
T
Amruth Pillai 893df25aff feat(applications): job application tracker with AI copilot
Add an Applications module at /dashboard/applications: pipeline board
(dnd-kit), table view with bulk actions, Insights (fit tiles, funnel,
sources, shareable funnel-flow SVG), campaigns, tags, CSV import, and
Add/Edit/Detail slide-overs. Each application links a live Reactive
Resume.

AI "Application Copilot" (applications.ai.*): job-posting autofill,
resume↔job match score (fit ring), resume tailoring, and cover-letter /
follow-up drafting — via the user's configured provider.

Board cards + table rows get context menus (edit / move / archive /
delete). Charts are CSS/SVG (no new chart dep); adds a UI Checkbox.

Also includes local TanStack devtools setup and toolchain bumps.

Claude-Session: https://claude.ai/code/session_01TEeRHnEayw2MFCShFRyL5f
2026-07-05 13:42:14 +02:00

69 lines
1.8 KiB
TypeScript

import type { ProxyOptions } from "vite";
import { readFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
import { lingui, linguiTransformerBabelPreset } from "@lingui/vite-plugin";
import babel from "@rolldown/plugin-babel";
import tailwindcss from "@tailwindcss/vite";
import { devtools } from "@tanstack/devtools-vite";
import { tanstackRouter } from "@tanstack/router-plugin/vite";
import viteReact, { reactCompilerPreset } from "@vitejs/plugin-react";
import { defineConfig } from "vite";
const rootPackageJsonPath = new URL("../../package.json", import.meta.url);
const rootPackageJson = JSON.parse(readFileSync(rootPackageJsonPath, "utf-8")) as { version: string | undefined };
const appVersion = JSON.stringify(rootPackageJson.version ?? "0.0.0");
const workspaceRoot = fileURLToPath(new URL("../..", import.meta.url));
const serverPaths = ["/api", "/mcp", "/uploads", "/.well-known", "/schema.json"] as const;
const serverProxy = serverPaths.reduce(
(acc, path) => {
acc[path] = {
target: `http://localhost:${process.env.SERVER_PORT ?? "3001"}`,
changeOrigin: true,
};
return acc;
},
{} as Record<string, ProxyOptions>,
);
export default defineConfig({
envDir: workspaceRoot,
resolve: {
tsconfigPaths: true,
},
define: {
__APP_VERSION__: appVersion,
},
build: {
chunkSizeWarningLimit: 10 * 1024, // 10 MB
rolldownOptions: {
external: ["bcrypt", "sharp", "@aws-sdk/client-s3", "ioredis", "linkedom"],
},
},
server: {
host: true,
strictPort: true,
port: Number.parseInt(process.env.PORT ?? "3000", 10),
proxy: serverProxy,
},
plugins: [
devtools(),
tailwindcss(),
tanstackRouter({
target: "react",
semicolons: true,
quoteStyle: "double",
autoCodeSplitting: true,
}),
viteReact(),
lingui(),
babel({ presets: [reactCompilerPreset(), linguiTransformerBabelPreset()] }),
],
});