Files
homelab-updaterandClaude Sonnet 5 e4734e8c94 build: TypeScript, ESLint, Vitest, Vite scaffold with layer rule
typescript ~6.0.3 (not 7.x): typescript-eslint 8.70 peers typescript <6.1.0, so 7.x would break lint.
eslint + typescript-eslint: strict type-checked lint; @eslint/js: base rules.
vitest: tests next to code; vite + @preact/preset-vite: frontend bundle; preact: UI.
fastify + @fastify/static: HTTP API/SSE and serving the built UI; zod: validation at boundaries.
@types/node: Node 24 typings. SQLite uses the built-in node:sqlite, so no native dependency.
Layer rule domain -> app -> infra -> http/web lives in tools/layer-rules.ts and is tested.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 23:37:11 +02:00

13 lines
387 B
TypeScript

import preact from '@preact/preset-vite';
import { defineConfig } from 'vite';
// Frontend only (src/web). The server serves dist/web; in dev, Vite proxies the API to the server process.
export default defineConfig({
root: 'src/web',
plugins: [preact()],
build: { outDir: '../../dist/web', emptyOutDir: true },
server: {
proxy: { '/api': 'http://127.0.0.1:8080' },
},
});