Skip to content

fix(pack-update): 顶层 match + 按 provider id 分派(审查 #61) - #62

Closed
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/bc-c1e13f80-7beb-4a9e-b7d6-8ca7aedd9e47-08b0
Closed

fix(pack-update): 顶层 match + 按 provider id 分派(审查 #61)#62
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/bc-c1e13f80-7beb-4a9e-b7d6-8ca7aedd9e47-08b0

Conversation

@cursor

@cursor cursor Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

背景

main 合入 #618ca75ac)后 ootb 已绿(run 30088797940)。本 PR 收敛审查中仍可验证的 DRY / OCP / DIP / LSP / Demeter 残余债。

审查(原则标注)

级别 原则 问题
MAJOR OCP / DIP / Demeter match(源无关名称策略)仍挂在 providers.curseforge,编排层经 getPackMatchConfig 深挖 CF 配置
MAJOR OCP / LSP createPackSourceProvider / getProvider 忽略 binding.provider,绑定字段与运行时分派不一致
MINOR DRY / 契约 无意义 getProvider 包装;CheckResult.archivePath 实际是 staging 目录
MINOR DRY @types/cli-progress 在移除 runtime 依赖后仍残留

改动

  1. PackUpdateConfig.match 顶层化;加载时兼容旧 providers.curseforge.match 并剥离脏字段
  2. createPackSourceProvider(cfg, id) exhaustive switch;prepareCheckbinding.provider 构造
  3. archivePathstagingDir;直接调用工厂
  4. 删除 @types/cli-progress;同步 defaults / 文档

验证

  • npm run typecheck -w @sfmc-bds/cli
  • npm test -w @sfmc-bds/cli(12 pass)
  • npm test -w @sfmc-bds/bds-tools(21 pass)
  • 隔离 SFMC_ROOT 冒烟:旧嵌套 match 提升 + 顶层优先

未改

  • CF 下载与 BDS httpDownload 进度环路进一步抽取(跨包,风险更高)
  • ServiceId pack-manager 注册等历史 MINOR
Open in Web View Automation 

合入 #61 后残余 SOLID 债:
- match 从 providers.curseforge 提升到 PackUpdateConfig 顶层(OCP/DIP/Demeter),兼容旧嵌套字段
- createPackSourceProvider(cfg, id) switch 分派;prepareCheck 按 binding.provider(OCP/LSP)
- CheckResult.archivePath 更名为 stagingDir;去掉无意义 getProvider 包装
- 移除已无 runtime 依赖的 @types/cli-progress

Co-authored-by: Shiroha <Tanya7z@users.noreply.github.com>
@Tanya7z Tanya7z closed this Jul 24, 2026
Tanya7z added a commit that referenced this pull request Jul 24, 2026
…9e82-c35299430588-e665

fix(pack-update): 修复 ootb TS2353 + defaultBindingEnabled 契约(含 #62
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants