main.ts 831 B

123456789101112131415161718192021222324
  1. import pino from 'pino'
  2. import { createApp } from './app'
  3. import { config } from './config'
  4. import { buildServer } from './http/server'
  5. const logger = pino({
  6. level: config.logLevel,
  7. transport: config.isDev ? { target: 'pino-pretty', options: { translateTime: 'HH:MM:ss', ignore: 'pid,hostname' } } : undefined,
  8. })
  9. const app = createApp(logger)
  10. const server = await buildServer(app, { logger })
  11. const shutdown = async (signal: string) => {
  12. logger.info({ signal }, 'shutting down')
  13. await server.close()
  14. app.db.$client.close()
  15. process.exit(0)
  16. }
  17. process.on('SIGINT', () => void shutdown('SIGINT'))
  18. process.on('SIGTERM', () => void shutdown('SIGTERM'))
  19. await server.listen({ host: config.host, port: config.port })
  20. logger.info({ dataDir: config.dataDir }, `AgentServer 已启动:http://${config.host}:${config.port}`)