用途:为 Next.js/Supabase 应用构建纯净、可测试的服务层,使业务逻辑与调用界面(I/O)解耦。服务只处理普通数据,不感知调用来源是 MCP 工具、Server Action、CLI、路由处理器还是测试。
主要能力:提供从契约定义、服务实现、薄适配器编写到单元测试的完整工作流。以 Zod 定义输入输出类型;服务通过构造函数注入依赖,不直接导入框架模块;适配器负责解析依赖、认证、日志、缓存失效与响应格式化;使用 mock 客户端即可进行隔离单元测试。
使用方式:按四步操作——用 Zod 与 TypeScript 定义普通输入输出类型;在 _lib/server/*.service.ts 中编写通过构造函数接收依赖的服务;为每种界面编写仅做依赖解析与委派的薄适配器;用 mock 客户端写单元测试。服务文件首行应加 import 'server-only';。
适用场景:需要在多个界面复用同一套业务逻辑,并希望脱离数据库或框架运行时进行测试的项目。
限制:资料未提供安装命令、收费信息或平台细节,暂未提供。若服务直接导入框架客户端、适配器内写业务逻辑或返回 {success,error} 包装,将导致测试困难与逻辑重复,需按规则修正。