用途:在 Saleor 配置器中实现新的实体类型,遵循七步流水线依次完成 schema、GraphQL 操作、repository、批量变更、service、测试与部署阶段,每步基于上一步,最终产出完整实体模块。适用于实现新实体(如分类、商品、菜单)、在 src/modules/ 下新增模块、需要完整 CRUD 的 Saleor API 功能;不适用于修改已有实体。
主要能力与关键文件:
- Schema:在 src/modules/config/schema/<entity>.schema.ts 用 Zod 校验,以 z.infer 推断类型,slug/name 用品牌类型,变体用可辨识联合。
- GraphQL:在 src/modules/<entity>/operations.ts 用 gql.tada,ResultOf 推断类型,变更中始终包含 errors { field, message, code },命名如 get<Entity>Query、create<Entity>Mutation。
- Repository:在 src/modules/<entity>/repository.ts 定义接口以便测试,用 GraphQLError.fromCombinedError() 包装错误,同时检查 result.error 与 result.data?.mutation?.errors。
- 批量变更:用 @/lib/utils/chunked-processor 的 processInChunks,阈值 BulkOperationThresholds.DEFAULT(10 项),每块 ChunkSizeConfig.DEFAULT_CHUNK_SIZE(10 项),错误策略 IGNORE_FAILED。
- Service:在 src/modules/<entity>/service.ts 通过构造函数注入 repository 接口,入参先用 Zod 校验。
- 测试:在模块目录用 builder 流畅接口,vi.fn() mock repository,MSW 做集成测试,build() 用 Zod 校验输出。
- 部署阶段:在 src/modules/deployment/stages/<entity>-stage.ts 设置依赖顺序,无配置项时跳过并委托 service。
验证命令:npx tsc --noEmit、pnpm fetch-schema、pnpm test src/modules/<entity>/repository.test.ts、pnpm test src/modules/<entity>/service.test.ts。回滚可用 pnpm dev introspect 捕获状态后对比 git 历史。关联技能包括 understanding-saleor-domain、analyzing-test-coverage、designing-zod-schemas、writing-graphql-operations、reviewing-typescript-code。限制:基础编程语言为 TypeScript,具体依赖版本与安装步骤资料未提供。