Skip to content

refactor: 消除 Config 双重表示 (#4)#10

Merged
bigmanBass666 merged 6 commits into
mainfrom
refactor/merge-config
Jul 10, 2026
Merged

refactor: 消除 Config 双重表示 (#4)#10
bigmanBass666 merged 6 commits into
mainfrom
refactor/merge-config

Conversation

@bigmanBass666

Copy link
Copy Markdown
Contributor

变更内容

internal/config 包中的 ConfigTomlProviderConfig 两个结构体合并为一个。纯重构,不改变 TOML 配置格式。

具体变更

  1. Config 所有字段添加 toml tag(保留 Go 字段名和 JSON tag)
  2. 删除 TomlProviderConfig 结构体
  3. 删除 tomlToConfigconfigToToml 转换函数(-58 行模板代码)
  4. TomlConfig.Provider 类型改为 map[string]*Config
  5. 新增 mergeConfig 函数处理 TOML 解析后的默认值回填
  6. 更新所有引用点(cmd/config.go, cmd/provider.go, config_loader.go, config_test.go

文件改动

文件 变更
internal/config/config.go +63 / -36(+toml tag、+mergeConfig)
internal/config/config_toml.go +79 / -138(-TomlProviderConfig、-转换函数)
internal/config/config_loader.go +10 / -5(使用 mergeConfig)
internal/cmd/config.go +5 / -3(*config.Config 类型)
internal/cmd/provider.go +6 / -4(*config.Config 类型、TargetBase)
internal/config/config_test.go +2 / -2(SaveToml 取代 configToToml)

验收标准

  • Config 结构体同时拥有 toml 和 json tag
  • TomlProviderConfig 被删除
  • tomlToConfig 和 configToToml 被删除
  • go build ./... 通过
  • go test -tags=unit ./... 全部通过
  • go vet ./... 通过
  • 现有 config.toml 向后兼容

Closes #4

wingIsCrazy added 2 commits July 10, 2026 20:52
- 定义 KeyMutation 类型(KeyEnable/KeyDisable/KeyRemove)
- 提取 updateKey 函数,统一处理加载-验证-修改-保存-重载流程
- 三个命令的 RunE 各精简为 3 行
- 不改变 CLI 接口

Closes #3
- 给 Config 结构体所有字段添加 toml tag
- 删除 TomlProviderConfig 结构体
- 删除 tomlToConfig/configToToml 转换函数
- TomlConfig.Provider 类型改为 map[string]*Config
- 新增 mergeConfig 函数处理 TOML 解析后的默认值回填
- 更新所有引用点(cmd/config.go, cmd/provider.go, config_loader.go, 测试)
- TOML 配置格式不变,向后兼容

Closes #4
@bigmanBass666
bigmanBass666 marked this pull request as ready for review July 10, 2026 14:37
@bigmanBass666
bigmanBass666 merged commit a6e06aa into main Jul 10, 2026
4 checks passed
@bigmanBass666
bigmanBass666 deleted the refactor/merge-config branch July 10, 2026 19:12
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.

消除 Config 双重表示(Config/TomlProviderConfig 合并)

1 participant