UNPKG

git-json-resolver

Version:

A rules-based JSON conflict resolver that parses Git conflict markers, reconstructs ours/theirs, and merges with deterministic strategies — beyond line-based merges.

42 lines (41 loc) 1.4 kB
/** * Config normalizer for JSON merge rules. * Expands shorthand, validates strategies, parses importance, * and classifies rules into exact / top-level / glob categories. */ import { Matcher } from "./matcher"; import { AllStrategies, Config, StrategyFn } from "./types"; export interface StrategyItem { name: string; important: boolean; } export interface StrategyList { strategies: StrategyItem[]; order: number; source: string; } export interface NormalizedRules { exact: Record<string, StrategyList[]>; exactFields: Record<string, StrategyList[]>; patterns: Record<string, StrategyList[]>; default: StrategyItem[]; } export interface NormalizedConfig<T extends string = AllStrategies, TContext = unknown> extends Omit<Config<T, TContext>, "byStrategy" | "rules" | "defaultStrategy" | "customStrategies"> { rules: NormalizedRules; matcher: Matcher; include: string[]; exclude: string[]; customStrategies: Record<string, StrategyFn<TContext>>; } /** Defaults */ export declare const DEFAULT_CONFIG: { defaultStrategy: string[]; include: string[]; exclude: string[]; debug: boolean; writeConflictSidecar: boolean; }; /** * Normalize user config into fully expanded and classified form. */ export declare const normalizeConfig: <T extends string = AllStrategies>(config: Config<T>) => Promise<NormalizedConfig>;