新增 refactor-checker-cohesion 变更提案,包含 proposal、design、 specs 和 tasks,定义 checker 目录内聚结构规范。同时归档已完成的 历史变更记录。
3.9 KiB
3.9 KiB
1. 基础设施搭建
- 1.1 创建
src/server/checker/utils.ts,将size.ts的parseSize和config-loader.ts的parseDuration及DURATION_REGEX迁入 - 1.2 创建
src/server/checker/expect/目录,创建expect/types.ts放置ExpectResult等共享类型 - 1.3 将
runner/shared/operator.ts迁入为expect/operator.ts - 1.4 将
runner/shared/failure.ts迁入为expect/failure.ts - 1.5 将
runner/shared/duration.ts迁入为expect/duration.ts(ExpectResult类型提取到expect/types.ts) - 1.6 从
runner/shared/validate.ts中提取validateOperatorObject、isJsonValue、validateOperatorValue、isPlainRecord到expect/validate-operator.ts
2. Schema 目录重组
- 2.1 将
config-contract/目录重命名为schema/ - 2.2 将
schema/schema.ts重命名为schema/builder.ts - 2.3 更新
schema/内部文件的相互引用路径 - 2.4 更新外部对
config-contract/的所有 import 路径(config-loader.ts、runner/shared/validate.ts 等)
3. 类型系统重构
- 3.1 在顶层
types.ts中创建ResolvedTargetBase和RawTargetConfigbase interface - 3.2 将 HTTP 专属类型(
HttpTargetConfig、ResolvedHttpTarget、HttpExpectConfig、HttpDefaultsConfig、ResolvedHttpConfig、BodyRule、CssRule、JsonRule、XpathRule、HeaderExpect)迁入runner/http/types.ts - 3.3 将 Command 专属类型(
CommandTargetConfig、ResolvedCommandTarget、CommandExpectConfig、CommandDefaultsConfig、ResolvedCommandConfig)迁入runner/command/types.ts - 3.4 删除顶层
types.ts中的ResolvedTarget联合类型和TargetConfig联合类型,将TextRule迁入 command/types.ts - 3.5 将
DefaultsConfig改为宽松 base 形式(仅保留interval?、timeout?+ index signature),将CommandDefaultsConfig迁入 command/types.ts,将HttpDefaultsConfig迁入 http/types.ts - 3.6 更新
runner/types.ts中CheckerDefinition接口签名,使用RawTargetConfig和ResolvedTargetBase - 3.7 更新
engine.ts、store.ts、config-loader.ts的类型引用为ResolvedTargetBase和RawTargetConfig
4. HTTP Checker 内聚化
- 4.1 将
runner/http/runner.ts重命名为runner/http/execute.ts - 4.2 将
runner/http/contract.ts重命名为runner/http/schema.ts - 4.3 将
runner/shared/body.ts迁入runner/http/body.ts - 4.4 将
runner/shared/validate.ts中的validateBodyRules、validateCssRule、validateJsonRule、validateXpathRule、validateRegexRule、validateSingleBodyRule、validateJsonPath合并到runner/http/validate.ts - 4.5 创建
runner/http/index.ts,re-exportHttpChecker - 4.6 更新
runner/http/内所有文件的 import 路径
5. Command Checker 内聚化
- 5.1 将
runner/command/runner.ts重命名为runner/command/execute.ts - 5.2 将
runner/command/contract.ts重命名为runner/command/schema.ts - 5.3 将
runner/shared/text.ts迁入runner/command/text.ts - 5.4 将
runner/shared/validate.ts中的validateTextRules合并到runner/command/validate.ts - 5.5 创建
runner/command/index.ts,re-exportCommandChecker - 5.6 更新
runner/command/内所有文件的 import 路径
6. 注册入口改造
- 6.1 重写
runner/index.ts为显式列表注册模式(import 列表 + checker 数组 + 循环注册) - 6.2 删除
runner/shared/目录(确认所有内容已迁移完毕) - 6.3 删除
src/server/checker/size.ts(已迁入 utils.ts)
7. 测试与质量保障
- 7.1 更新所有测试文件的 import 路径
- 7.2 执行完整测试套件,确保所有测试通过
- 7.3 执行 lint 和格式检查,确保代码质量
- 7.4 更新 README.md 和 DEVELOPMENT.md 中涉及 checker 模块结构的描述