datum-merge
Version:
Simplified diff and merging for deeply nested objects
22 lines • 1.22 kB
TypeScript
import { MergeCode } from "./merge-low";
export type DetailConfig = {
[key: string]: MergeCode | DetailConfig;
};
export type MergeConfig = {
scalar?: MergeCode;
vector?: MergeCode;
nested?: MergeCode;
[glob: string]: MergeCode | MergeConfig | undefined;
};
export declare function detailMerge(target: {
[key: string]: any;
}, source: {
[key: string]: any;
}, mergeCodes: DetailConfig): boolean;
export declare function immutableDetailMerge(target: any, source: any, mergeCodes: DetailConfig): any;
export declare function getDetailKeys(obj: any, mergeCodes: DetailConfig, excludeKeys?: string[]): string[];
export declare function customMerge<T extends object>(target: T, source: Partial<T>, mergeConf: MergeConfig | MergeCode, excludeKeys?: string[]): Partial<T> | false;
export declare function bypassMerge<T extends object>(target: T, source: object): Partial<T> | false;
export declare function immutableCustomMerge(target: any, source: any, mergeConf: MergeConfig, skipFill?: boolean): any;
export declare const fillUpdateCodes: (source: any, mergeConf: MergeConfig | MergeCode, blockUnset?: boolean, excludeKeys?: string[]) => DetailConfig;
//# sourceMappingURL=merge-conf.d.ts.map