mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
1.8 KiB
1.8 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-78 | Modularize config definitions and validation by domain | To Do | 2026-02-18 11:43 | 2026-02-18 11:43 |
|
|
high |
Description
Config defaults and resolution are still concentrated in large files (src/config/definitions.ts, src/config/service.ts). This task splits config schema/defaults/validation into domain modules while preserving a single composed public config API.
Suggestions
- Organize by domain (
anki,subtitle,jellyfin,anilist,launcher,runtime). - Keep one composition root that merges domain validators and defaults.
- Prefer small reusable validator helpers over per-field inline logic.
Action Steps
- Define domain module boundaries for defaults + validation rules.
- Extract domain validators with shared primitives and warning builder.
- Compose resolved config in a central aggregator module.
- Keep
ConfigServiceexternal API stable. - Expand tests for domain-level validation and composed config output.
- Update config docs to reflect module ownership and extension workflow.
Acceptance Criteria
- #1 Config definitions/validation are split by domain with clear ownership
- #2
ConfigServiceAPI remains backward-compatible - #3 Validation behavior remains stable under existing tests
- #4 New domain-level tests prevent regression in future config additions
Definition of Done
- #1 Config and core tests pass
- #2 Documentation updated for config extension workflow