1
0

chore: scaffold node/ts/vitest project with health endpoint

This commit is contained in:
2026-08-29 14:43:44 +02:00
parent 52b2cbd6c5
commit 01ad6fbb40
12 changed files with 3020 additions and 0 deletions

26
server/src/app.ts Normal file
View File

@@ -0,0 +1,26 @@
import Fastify, { FastifyInstance } from 'fastify'
import Database from 'better-sqlite3'
import type { Config } from './config.js'
declare module 'fastify' {
interface FastifyInstance {
db: Database.Database
config: Config
fetchImpl: typeof fetch
}
}
export interface AppOptions {
db: Database.Database
config: Config
fetchImpl?: typeof fetch
}
export async function buildApp(opts: AppOptions): Promise<FastifyInstance> {
const app = Fastify({ logger: false })
app.decorate('db', opts.db)
app.decorate('config', opts.config)
app.decorate('fetchImpl', opts.fetchImpl ?? fetch)
app.get('/api/health', async () => ({ ok: true }))
return app
}