object-merge-advanced
Version:
Deeply merge JSON-like data structures
50 lines (48 loc) • 1.16 kB
TypeScript
declare const version: string;
type argType =
| "date"
| "date"
| "object"
| "array"
| "string"
| "number"
| "function"
| "bigint"
| "boolean"
| "symbol"
| "null"
| "undefined";
interface InfoObj {
path: string | undefined;
key: string | null;
type: [argType, argType];
}
interface Opts {
cb:
| null
| ((input1: any, input2: any, result: any, infoObj?: InfoObj) => any);
mergeObjectsOnlyWhenKeysetMatches: boolean;
ignoreKeys: string | string[];
hardMergeKeys: string | string[];
hardArrayConcatKeys: string[];
mergeArraysContainingStringsToBeEmpty: boolean;
oneToManyArrayObjectMerge: boolean;
hardMergeEverything: boolean;
hardArrayConcat: boolean;
ignoreEverything: boolean;
concatInsteadOfMerging: boolean;
dedupeStringsInArrayValues: boolean;
mergeBoolsUsingOrNotAnd: boolean;
useNullAsExplicitFalse: boolean;
}
declare const defaults: Opts;
/**
* Recursively, deeply merge of anything
*/
declare function externalApi(
input1: unknown,
input2: unknown,
opts?: Partial<Opts>,
): any;
export { defaults, externalApi as mergeAdvanced, version };
export type { InfoObj, Opts, argType };