chore: scaffold Nuxt 4 app with Postgres, tooling and health route

Nuxt 4 (app/ structure) + TypeScript, ESLint, Vitest + @nuxt/test-utils,
Drizzle + pg, a /api/health route with a DB ping, and a dev docker-compose
(app + Postgres). Verified: pnpm test, lint, and build pass; the built
server answers /api/health.
This commit is contained in:
Julien Calixte
2026-05-27 22:16:46 +02:00
parent e81ee53f7b
commit c13f3deeff
21 changed files with 10255 additions and 0 deletions

21
server/db/client.ts Normal file
View File

@@ -0,0 +1,21 @@
import pg from 'pg'
let pool: pg.Pool | undefined
/** Lazily-created shared Postgres connection pool. */
export function getPool(): pg.Pool {
if (!pool) {
pool = new pg.Pool({ connectionString: process.env.DATABASE_URL })
}
return pool
}
/** Liveness probe for the database, used by /api/health. */
export async function checkDb(): Promise<'up' | 'down'> {
try {
await getPool().query('select 1')
return 'up'
} catch {
return 'down'
}
}

2
server/db/schema.ts Normal file
View File

@@ -0,0 +1,2 @@
// Drizzle (Postgres) schema — tables are defined in Task 3.
export {}