@felixgeelhaar/cclint
Version:
Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.
34 lines • 1.55 kB
TypeScript
import type { CclintConfig } from '../domain/Config.js';
export declare class ConfigLoader {
private static readonly CONFIG_FILES;
static load(startDir?: string): CclintConfig;
private static findConfigFile;
private static loadConfigFile;
/**
* Resolve a user config into a fully merged {@link CclintConfig}.
*
* @remarks
* Layering is defaults ← preset(s) in `extends` order ← user config, so the
* user's own settings always win and presets closer to the end of an
* `extends` array override earlier ones. `rules` are deep-merged per rule
* (enabled/severity/options); other fields (`ignore`, `plugins`) are
* replaced by the more specific layer. `extends` is consumed here and never
* appears in the resolved result.
*/
private static resolveConfig;
/**
* Turn an `extends` value into the ordered list of preset configs to apply.
* Only built-in named presets are supported; an unknown name is warned about
* and skipped so a typo degrades gracefully rather than aborting the lint.
*/
private static resolveExtends;
/** Merge an override layer over a base config; the override always wins. */
private static mergeConfigs;
/**
* Deep-merge two rule maps. For each rule present in either layer, the
* override's fields win, and `options` are themselves shallow-merged so a
* layer can tweak a single option without dropping the others.
*/
private static mergeRules;
}
//# sourceMappingURL=ConfigLoader.d.ts.map