11import { NormalizedConfig } from "./normalizer" ;
22import { resolveStrategies } from "./strategy-resolver" ;
33import { StrategyFn , StrategyResult , StrategyStatus } from "./types" ;
4- import { DROP } from "./utils" ;
4+ import {
5+ DROP ,
6+ StrategyStatus_OK ,
7+ StrategyStatus_CONTINUE ,
8+ StrategyStatus_FAIL ,
9+ StrategyStatus_SKIP ,
10+ } from "./utils" ;
511
612/** Conflict entry (minimal by default). */
713export interface Conflict {
@@ -23,13 +29,13 @@ export interface MergeResult {
2329/** Helper: stringify status for logs. */
2430export const statusToString = ( s : StrategyStatus ) : string => {
2531 switch ( s ) {
26- case StrategyStatus . OK :
32+ case StrategyStatus_OK :
2733 return "OK" ;
28- case StrategyStatus . CONTINUE :
34+ case StrategyStatus_CONTINUE :
2935 return "CONTINUE" ;
30- case StrategyStatus . FAIL :
36+ case StrategyStatus_FAIL :
3137 return "FAIL" ;
32- case StrategyStatus . SKIP :
38+ case StrategyStatus_SKIP :
3339 return "SKIP" ;
3440 default :
3541 return `UNKNOWN(${ s } )` ;
@@ -62,40 +68,40 @@ const isPlainObject = (val: unknown): val is Record<string, unknown> =>
6268/** Built-in strategies. */
6369export const BuiltInStrategies = {
6470 ours : < TContext > ( { ours } : MergeArgs < TContext > ) : StrategyResult => ( {
65- status : StrategyStatus . OK ,
71+ status : StrategyStatus_OK ,
6672 value : ours ,
6773 } ) ,
6874
6975 theirs : < TContext > ( { theirs } : MergeArgs < TContext > ) : StrategyResult => ( {
70- status : StrategyStatus . OK ,
76+ status : StrategyStatus_OK ,
7177 value : theirs ,
7278 } ) ,
7379
7480 base : < TContext > ( { base } : MergeArgs < TContext > ) : StrategyResult => ( {
75- status : StrategyStatus . OK ,
81+ status : StrategyStatus_OK ,
7682 value : base ,
7783 } ) ,
7884
7985 drop : < TContext > ( _skipped : MergeArgs < TContext > ) : StrategyResult => ( {
80- status : StrategyStatus . OK ,
86+ status : StrategyStatus_OK ,
8187 value : DROP ,
8288 } ) ,
8389
8490 skip : < TContext > ( { path } : MergeArgs < TContext > ) : StrategyResult => ( {
85- status : StrategyStatus . SKIP ,
91+ status : StrategyStatus_SKIP ,
8692 reason : `Skip strategy applied at ${ path } ` ,
8793 } ) ,
8894
8995 "non-empty" : < TContext > ( { ours, theirs, base } : MergeArgs < TContext > ) : StrategyResult => {
90- if ( ours != null && ours !== "" ) return { status : StrategyStatus . OK , value : ours } ;
91- if ( theirs != null && theirs !== "" ) return { status : StrategyStatus . OK , value : theirs } ;
92- if ( base != null && base !== "" ) return { status : StrategyStatus . OK , value : base } ;
93- return { status : StrategyStatus . CONTINUE } ;
96+ if ( ours != null && ours !== "" ) return { status : StrategyStatus_OK , value : ours } ;
97+ if ( theirs != null && theirs !== "" ) return { status : StrategyStatus_OK , value : theirs } ;
98+ if ( base != null && base !== "" ) return { status : StrategyStatus_OK , value : base } ;
99+ return { status : StrategyStatus_CONTINUE } ;
94100 } ,
95101
96102 update : < TContext > ( { ours, theirs } : MergeArgs < TContext > ) : StrategyResult => {
97- if ( ours !== undefined ) return { status : StrategyStatus . OK , value : theirs } ;
98- return { status : StrategyStatus . OK , value : DROP } ;
103+ if ( ours !== undefined ) return { status : StrategyStatus_OK , value : theirs } ;
104+ return { status : StrategyStatus_OK , value : DROP } ;
99105 } ,
100106
101107 merge : async < TContext > ( args : MergeArgs < TContext > ) : Promise < StrategyResult > => {
@@ -116,24 +122,24 @@ export const BuiltInStrategies = {
116122 conflicts,
117123 } ) ;
118124 }
119- return { status : StrategyStatus . OK , value : result } ;
125+ return { status : StrategyStatus_OK , value : result } ;
120126 }
121127
122- return { status : StrategyStatus . CONTINUE , reason : "Unmergeable type" } ;
128+ return { status : StrategyStatus_CONTINUE , reason : "Unmergeable type" } ;
123129 } ,
124130
125131 concat : < TContext > ( { ours, theirs, path } : MergeArgs < TContext > ) : StrategyResult => {
126132 if ( Array . isArray ( ours ) && Array . isArray ( theirs ) ) {
127- return { status : StrategyStatus . OK , value : [ ...ours , ...theirs ] } ;
133+ return { status : StrategyStatus_OK , value : [ ...ours , ...theirs ] } ;
128134 }
129- return { status : StrategyStatus . CONTINUE , reason : `Cannot concat at ${ path } ` } ;
135+ return { status : StrategyStatus_CONTINUE , reason : `Cannot concat at ${ path } ` } ;
130136 } ,
131137
132138 unique : < TContext > ( { ours, theirs, path } : MergeArgs < TContext > ) : StrategyResult => {
133139 if ( Array . isArray ( ours ) && Array . isArray ( theirs ) ) {
134- return { status : StrategyStatus . OK , value : [ ...new Set ( [ ...ours , ...theirs ] ) ] } ;
140+ return { status : StrategyStatus_OK , value : [ ...new Set ( [ ...ours , ...theirs ] ) ] } ;
135141 }
136- return { status : StrategyStatus . CONTINUE , reason : `Cannot concat at ${ path } ` } ;
142+ return { status : StrategyStatus_CONTINUE , reason : `Cannot concat at ${ path } ` } ;
137143 } ,
138144} as const ;
139145
@@ -185,14 +191,14 @@ export const mergeObject = async <TContext>({
185191 } ) ;
186192
187193 switch ( result . status ) {
188- case StrategyStatus . OK :
194+ case StrategyStatus_OK :
189195 return result . value ;
190- case StrategyStatus . CONTINUE :
196+ case StrategyStatus_CONTINUE :
191197 continue ;
192- case StrategyStatus . SKIP :
198+ case StrategyStatus_SKIP :
193199 conflicts . push ( { path, reason : result . reason } ) ;
194200 return undefined ;
195- case StrategyStatus . FAIL :
201+ case StrategyStatus_FAIL :
196202 conflicts . push ( { path, reason : result . reason } ) ;
197203 throw new Error ( `Merge failed at ${ path } : ${ result . reason } ` ) ;
198204 }
0 commit comments