import { Hono } from 'hono' import { contextStorage, getContext } from 'hono/context-storage' import { prettyJSON } from 'hono/pretty-json' import { cors } from 'hono/cors' import { trpcServer } from '@hono/trpc-server' import Redis from 'ioredis' import redis from './redis' import minioClient from './minio' import { Client } from 'minio' import { appRouter } from './trpc' import { oidcApp } from './oidc-demo' type Env = { Variables: { redis: Redis minio: Client } } const app = new Hono() // 全局CORS配置 app.use('*', cors({ origin: '*', })) // 注入依赖 app.use('*', async (c, next) => { c.set('redis', redis) c.set('minio', minioClient) await next() }) // 中间件 app.use(contextStorage()) app.use(prettyJSON()) app.route('/oidc', oidcApp) // 挂载tRPC app.use( '/trpc/*', trpcServer({ router: appRouter, }) ) // 启动服务器 const port = parseInt(process.env.PORT || '3000'); export default { port, fetch: app.fetch, } console.log(`🚀 服务器运行在 http://localhost:${port}`)