refactor(config): simplify includes with class-based processor

- Replace free functions with IncludeProcessor class
- Simplify IncludeResolver interface: { readFile, parseJson }
- Break down loadFile into focused private methods
- Use reduce() for array include merging
- Cleaner separation of concerns
This commit is contained in:
sheeek
2026-01-11 15:48:40 +01:00
committed by Peter Steinberger
parent e6400b0b0f
commit 53d3134fe8
3 changed files with 174 additions and 180 deletions

View File

@@ -162,8 +162,8 @@ export function createConfigIO(overrides: ConfigIoDeps = {}) {
// Resolve $include directives before validation
const resolved = resolveConfigIncludes(parsed, configPath, {
fsModule: deps.fs,
json5Module: deps.json5,
readFile: (p) => deps.fs.readFileSync(p, "utf-8"),
parseJson: (raw) => deps.json5.parse(raw),
});
warnOnConfigMiskeys(resolved, deps.logger);
@@ -267,8 +267,8 @@ export function createConfigIO(overrides: ConfigIoDeps = {}) {
let resolved: unknown;
try {
resolved = resolveConfigIncludes(parsedRes.parsed, configPath, {
fsModule: deps.fs,
json5Module: deps.json5,
readFile: (p) => deps.fs.readFileSync(p, "utf-8"),
parseJson: (raw) => deps.json5.parse(raw),
});
} catch (err) {
const message =