2.3 KiB
2.3 KiB
shared — TLYQ 共享标准库
tlyq.ai 各站点共享的标准库,消除代码重复,统一基础设施实现。
目录结构
shared/
├── lib/
│ ├── auth/ # 认证标准库
│ │ ├── config.ts # config 工厂(createAuthConfig)
│ │ ├── jwt.ts # JWT 签发/验证
│ │ ├── ldap.ts # LDAP 认证
│ │ ├── middleware.ts # middleware 工厂(createMiddleware)
│ │ ├── oidc.ts # OIDC 客户端
│ │ ├── types.ts # 类型定义
│ │ └── user-sync.ts # OIDC 用户同步
│ ├── audit/ # 审计日志标准库
│ │ ├── audit-schema.ts # 表结构常量
│ │ └── write-audit-log.ts # writeAuditLog + diffObjects + getClientIP
│ ├── wechat/ # 企业微信推送
│ │ ├── wechat-pusher.ts # WeChatPusher 类
│ │ └── message-formatter.ts # 消息格式化工具
│ ├── alert/ # 告警管理
│ │ ├── alert-manager.ts # AlertManager(去重/冷却/免打扰)
│ │ ├── health-checker.ts # HealthChecker(HTTP/Docker)
│ │ └── types.ts # 类型定义
│ └── db/ # 数据库 schema
│ └── alert-schema.ts # CREATE TABLE 常量
└── ui/ # 共享 UI 组件
└── login-page.tsx # 统一登录页
使用方式
1. 创建 symlink
ln -sf ../shared {站点目录}/shared
2. 配置 tsconfig
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"@shared/*": ["./shared/*"]
}
}
}
3. 引用
import { createAuthConfig } from '@shared/lib/auth/config'
import { createMiddleware } from '@shared/lib/auth/middleware'
import { writeAuditLog } from '@shared/lib/audit/write-audit-log'
import { WeChatPusher } from '@shared/lib/wechat/wechat-pusher'
设计原则
- 零业务依赖:纯基础设施,不含站点特有逻辑
- 配置驱动:所有环境变量通过参数传入,不硬编码
- 接口稳定:包装器保持各站点原有调用方式不变
- Edge Runtime 兼容:middleware 仅用 atob,不用 Node.js crypto