UNPKG

@smartimpact-it/json-merge-shopify

Version:
49 lines (48 loc) 1.51 kB
import { ArrayElementResult } from './Comparer'; export interface ArrayMergerOptions { base: any[]; ours: any[]; theirs: any[]; preferred?: SourceType | null; filename?: string | null; path?: string[]; deletionsAllowed?: boolean; } export interface ArrayMergerVariant { seemsValid: boolean; positions: Array<{ unionPosition: number; basePosition: number | null; oursPosition: number | null; theirsPosition: number | null; }>; similarityScore: number; } export interface UnionArrayElementResult extends ArrayElementResult { unionIndex: number; } export type SourceType = 'base' | 'ours' | 'theirs'; export declare class ArrayMerger { ours: any[]; theirs: any[]; base: any[]; union: any[]; preferred: SourceType; filename: string | null; path: string[] | null; variants: ArrayMergerVariant[] | null; objectPossiblePositions: UnionArrayElementResult[] | null; deletionsAllowed: boolean; constructor({ base, ours, theirs, preferred, filename, path, deletionsAllowed, }: ArrayMergerOptions); private getUnion; getObjectPositions(): UnionArrayElementResult[]; private getPositionsAsArray; private getPositionIndex; private getPositionScore; private getNextVariants; getVariants(): ArrayMergerVariant[]; generateFromVariant(variant: ArrayMergerVariant): any[]; getMergedObject(theirs: any, ours: any): any; merge(): any[]; } export default ArrayMerger;