50 lines
2.0 KiB
TypeScript
50 lines
2.0 KiB
TypeScript
/** @jsxImportSource https://esm.d8d.fun/hono@4.7.4/jsx */
|
|
import { Hono } from 'hono'
|
|
import { corsMiddleware, withAuth, setEnvVariables } from './middlewares.ts'
|
|
import type { APIClient } from '@d8d-appcontainer/api'
|
|
|
|
// 导入路由模块
|
|
import { createAuthRoutes } from "./routes_auth.ts"
|
|
import { createUserRoutes } from "./routes_users.ts"
|
|
import { createKnowInfoRoutes } from "./routes_know_info.ts"
|
|
import { createFileUploadRoutes } from "./routes_file_upload.ts"
|
|
import { createFileCategoryRoutes } from "./routes_file_category.ts"
|
|
import { createThemeRoutes } from "./routes_theme.ts"
|
|
import { createChartRoutes } from "./routes_charts.ts"
|
|
import { createMapRoutes } from "./routes_maps.ts"
|
|
import { createSystemSettingsRoutes } from "./routes_system_settings.ts"
|
|
import { createMessagesRoutes } from "./routes_messages.ts"
|
|
import { createMigrationsRoutes } from "./routes_migrations.ts"
|
|
import { createHomeRoutes } from "./routes_home.ts"
|
|
|
|
export function createRouter(apiClient: APIClient, moduleDir: string) {
|
|
const router = new Hono()
|
|
|
|
// 添加CORS中间件
|
|
router.use('/*', corsMiddleware)
|
|
|
|
// 创建API路由
|
|
const api = new Hono()
|
|
|
|
// 设置环境变量
|
|
api.use('*', setEnvVariables(apiClient, moduleDir))
|
|
|
|
// 注册所有路由
|
|
api.route('/auth', createAuthRoutes(withAuth))
|
|
api.route('/users', createUserRoutes(withAuth))
|
|
api.route('/know-infos', createKnowInfoRoutes(withAuth))
|
|
api.route('/upload', createFileUploadRoutes(withAuth))
|
|
api.route('/file-categories', createFileCategoryRoutes(withAuth))
|
|
api.route('/theme', createThemeRoutes(withAuth))
|
|
api.route('/charts', createChartRoutes(withAuth))
|
|
api.route('/map', createMapRoutes(withAuth))
|
|
api.route('/settings', createSystemSettingsRoutes(withAuth))
|
|
api.route('/messages', createMessagesRoutes(withAuth))
|
|
api.route('/migrations', createMigrationsRoutes(withAuth))
|
|
api.route('/home', createHomeRoutes(withAuth))
|
|
|
|
// 注册API路由到主路由器
|
|
router.route('/api', api)
|
|
|
|
return router
|
|
} |