import Fastify from 'fastify' import { registerErrorHandler, registerTrace } from '@drama/server-kit' import { registerAccessRoutes } from './routes/access.js' import { registerAuthRoutes } from './routes/auth.js' import { registerV1Routes } from './routes/v1.js' /** * 创建并注册一个尚未 listen 的 Fastify app。只消费装配好的 services,不接触连接与 env。 * @param {{ services: Record, logger: { child: Function } }} deps * @returns {import('fastify').FastifyInstance} */ export function buildApp({ services, logger }) { const app = Fastify({ logger: false }) registerTrace(app, { logger }) registerErrorHandler(app) app.get('/healthz', async (request) => ({ ok: true, service: '@voko/server', trace_id: request.ctx && request.ctx.traceId, })) registerAuthRoutes(app, services) registerAccessRoutes(app, services) registerV1Routes(app, services) return app }