datum-merge 0.5.1 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/datum-utils.d.ts +18 -0
- package/dist/cjs/datum-utils.d.ts.map +1 -0
- package/dist/cjs/datum-utils.js +109 -0
- package/dist/cjs/datum-utils.js.map +1 -0
- package/dist/cjs/diff-high.d.ts +5 -0
- package/dist/cjs/diff-high.d.ts.map +1 -0
- package/dist/cjs/diff-high.js +54 -0
- package/dist/cjs/diff-high.js.map +1 -0
- package/dist/cjs/diff-lib/deep-diff.d.ts +60 -0
- package/dist/cjs/diff-lib/deep-diff.d.ts.map +1 -0
- package/dist/cjs/diff-lib/deep-diff.js +429 -0
- package/dist/cjs/diff-lib/deep-diff.js.map +1 -0
- package/dist/cjs/index.d.ts +18 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +53 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/merge-conf.d.ts +11 -0
- package/dist/cjs/merge-conf.d.ts.map +1 -0
- package/dist/cjs/merge-conf.js +38 -0
- package/dist/cjs/merge-conf.js.map +1 -0
- package/dist/cjs/merge-high.d.ts +47 -0
- package/dist/cjs/merge-high.d.ts.map +1 -0
- package/dist/cjs/merge-high.js +115 -0
- package/dist/cjs/merge-high.js.map +1 -0
- package/dist/cjs/merge-low.d.ts +20 -0
- package/dist/cjs/merge-low.d.ts.map +1 -0
- package/dist/cjs/merge-low.js +141 -0
- package/dist/cjs/merge-low.js.map +1 -0
- package/dist/cjs/type-utils.d.ts +25 -0
- package/dist/cjs/type-utils.d.ts.map +1 -0
- package/dist/cjs/type-utils.js +78 -0
- package/dist/cjs/type-utils.js.map +1 -0
- package/dist/esm/datum-utils.d.ts +1 -0
- package/dist/esm/datum-utils.d.ts.map +1 -0
- package/dist/esm/diff-high.d.ts +1 -0
- package/dist/esm/diff-high.d.ts.map +1 -0
- package/dist/esm/diff-lib/deep-diff.d.ts +1 -0
- package/dist/esm/diff-lib/deep-diff.d.ts.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/merge-conf.d.ts +1 -0
- package/dist/esm/merge-conf.d.ts.map +1 -0
- package/dist/esm/merge-high.d.ts +1 -0
- package/dist/esm/merge-high.d.ts.map +1 -0
- package/dist/esm/merge-low.d.ts +1 -0
- package/dist/esm/merge-low.d.ts.map +1 -0
- package/dist/esm/type-utils.d.ts +1 -0
- package/dist/esm/type-utils.d.ts.map +1 -0
- package/package.json +10 -6
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function getObjectKeys(obj: any, excludeKeys?: string[], includeKeys?: string[]): string[];
|
|
2
|
+
export declare function deepEquals(lhs: any, rhs: any): boolean;
|
|
3
|
+
export declare function deepClone(val: any): any;
|
|
4
|
+
export declare function toUniqueArray<T>(arr: T[]): T[];
|
|
5
|
+
export declare function areArraysEqual<T>(arr1: T[] | undefined, arr2: T[] | undefined): boolean;
|
|
6
|
+
export declare function createGlobRegex(search: string): RegExp;
|
|
7
|
+
export declare function selectGlobKeys(obj: any, includePats?: string[], excludeKeys?: string[]): string[];
|
|
8
|
+
export declare function flattenObject(obj: {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}): {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
export declare function unflattenObject(flatObj: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}): {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=datum-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datum-utils.d.ts","sourceRoot":"","sources":["../../src/datum-utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CACzB,GAAG,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,WAAW,CAAC,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAaV;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAEtD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAEvC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE9C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC5B,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EACrB,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,GACtB,OAAO,CAaT;AAID,wBAAgB,eAAe,CAC3B,MAAM,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,cAAc,CAC1B,GAAG,EAAE,GAAG,EACR,WAAW,GAAE,MAAM,EAAU,EAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAYV;AAID,wBAAgB,aAAa,CACzB,GAAG,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC5B;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAiBxB;AAED,wBAAgB,eAAe,CAC3B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAChC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAgBxB"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.unflattenObject = exports.flattenObject = exports.selectGlobKeys = exports.createGlobRegex = exports.areArraysEqual = exports.toUniqueArray = exports.deepClone = exports.deepEquals = exports.getObjectKeys = void 0;
|
|
7
|
+
const lodash_es_1 = require("lodash-es");
|
|
8
|
+
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
9
|
+
function getObjectKeys(obj, excludeKeys, includeKeys) {
|
|
10
|
+
if (!obj) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
let sourceKeys = Object.keys(obj);
|
|
14
|
+
if (includeKeys && !!includeKeys.length) {
|
|
15
|
+
includeKeys.filter((k) => !sourceKeys.includes(k))
|
|
16
|
+
.forEach((k) => sourceKeys.push(k));
|
|
17
|
+
}
|
|
18
|
+
if (excludeKeys && !!excludeKeys.length) {
|
|
19
|
+
sourceKeys = sourceKeys.filter((k) => !excludeKeys.includes(k));
|
|
20
|
+
}
|
|
21
|
+
return sourceKeys;
|
|
22
|
+
}
|
|
23
|
+
exports.getObjectKeys = getObjectKeys;
|
|
24
|
+
;
|
|
25
|
+
function deepEquals(lhs, rhs) {
|
|
26
|
+
return (0, fast_deep_equal_1.default)(lhs, rhs);
|
|
27
|
+
}
|
|
28
|
+
exports.deepEquals = deepEquals;
|
|
29
|
+
function deepClone(val) {
|
|
30
|
+
return (0, lodash_es_1.cloneDeep)(val);
|
|
31
|
+
}
|
|
32
|
+
exports.deepClone = deepClone;
|
|
33
|
+
function toUniqueArray(arr) {
|
|
34
|
+
return [...new Set(arr)];
|
|
35
|
+
}
|
|
36
|
+
exports.toUniqueArray = toUniqueArray;
|
|
37
|
+
function areArraysEqual(arr1, arr2) {
|
|
38
|
+
if (arr1 == null && arr2 == null)
|
|
39
|
+
return true;
|
|
40
|
+
if (arr1 == null || arr2 == null)
|
|
41
|
+
return false;
|
|
42
|
+
if (arr1.length !== arr2.length)
|
|
43
|
+
return false;
|
|
44
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
45
|
+
if (arr1[i] !== arr2[i]) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
exports.areArraysEqual = areArraysEqual;
|
|
52
|
+
function createGlobRegex(search) {
|
|
53
|
+
let pattern = search.replace(/\*/g, ".+");
|
|
54
|
+
return new RegExp(`^${pattern}$`);
|
|
55
|
+
}
|
|
56
|
+
exports.createGlobRegex = createGlobRegex;
|
|
57
|
+
function selectGlobKeys(obj, includePats = ["*"], excludeKeys) {
|
|
58
|
+
const includeKeys = [];
|
|
59
|
+
if (!obj || !(includePats === null || includePats === void 0 ? void 0 : includePats.length)) {
|
|
60
|
+
return includeKeys;
|
|
61
|
+
}
|
|
62
|
+
const globPats = includePats.map((g) => createGlobRegex(g));
|
|
63
|
+
for (const label of getObjectKeys(obj, excludeKeys)) {
|
|
64
|
+
if (globPats.findIndex((r) => r.test(label)) >= 0) {
|
|
65
|
+
includeKeys.push(label);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return includeKeys;
|
|
69
|
+
}
|
|
70
|
+
exports.selectGlobKeys = selectGlobKeys;
|
|
71
|
+
function flattenObject(obj) {
|
|
72
|
+
const flatObj = {};
|
|
73
|
+
const path = [];
|
|
74
|
+
const isObject = (value) => Object(value) === value;
|
|
75
|
+
function dig(obj) {
|
|
76
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
77
|
+
path.push(key);
|
|
78
|
+
if (isObject(value)) {
|
|
79
|
+
dig(value);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
flatObj[path.join('.')] = value;
|
|
83
|
+
}
|
|
84
|
+
path.pop();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
dig(obj);
|
|
88
|
+
return flatObj;
|
|
89
|
+
}
|
|
90
|
+
exports.flattenObject = flattenObject;
|
|
91
|
+
function unflattenObject(flatObj) {
|
|
92
|
+
const unflatObj = {};
|
|
93
|
+
for (const [path, value] of Object.entries(flatObj)) {
|
|
94
|
+
const chain = path.split('.');
|
|
95
|
+
let obj = unflatObj;
|
|
96
|
+
for (const [i, key] of chain.slice(0, -1).entries()) {
|
|
97
|
+
if (!obj[key]) {
|
|
98
|
+
const needArray = Number.isInteger(Number(chain[+i + 1]));
|
|
99
|
+
obj[key] = needArray ? [] : {};
|
|
100
|
+
}
|
|
101
|
+
obj = obj[key];
|
|
102
|
+
}
|
|
103
|
+
const lastkey = chain.pop();
|
|
104
|
+
obj[lastkey] = value;
|
|
105
|
+
}
|
|
106
|
+
return unflatObj;
|
|
107
|
+
}
|
|
108
|
+
exports.unflattenObject = unflattenObject;
|
|
109
|
+
//# sourceMappingURL=datum-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datum-utils.js","sourceRoot":"","sources":["../../src/datum-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Diff } from "./diff-lib/deep-diff";
|
|
2
|
+
export declare function deepDiffFlat(oldFlat: any, newFlat: any, flatten?: boolean): [any, any];
|
|
3
|
+
export declare function deepDiffTyped<T>(lhsObj: T, rhsObj: T): Partial<T>;
|
|
4
|
+
export declare function deepDiffLow<T, S>(lhsObj: T, rhsObj: S, orderInd?: boolean): readonly Diff<T, S>[] | false;
|
|
5
|
+
//# sourceMappingURL=diff-high.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-high.d.ts","sourceRoot":"","sources":["../../src/diff-high.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA2C,MAAM,sBAAsB,CAAC;AAIrF,wBAAgB,YAAY,CACxB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,OAAO,GAAE,OAAe,GACzB,CAAC,GAAG,EAAE,GAAG,CAAC,CAeZ;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC3B,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAWZ;AAWD,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,QAAQ,GAAE,OAAe,GAC1B,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAO/B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deepDiffLow = exports.deepDiffTyped = exports.deepDiffFlat = void 0;
|
|
4
|
+
const deep_diff_1 = require("./diff-lib/deep-diff");
|
|
5
|
+
const datum_utils_1 = require("./datum-utils");
|
|
6
|
+
function deepDiffFlat(oldFlat, newFlat, flatten = false) {
|
|
7
|
+
if (flatten) {
|
|
8
|
+
oldFlat = (0, datum_utils_1.flattenObject)(oldFlat);
|
|
9
|
+
newFlat = (0, datum_utils_1.flattenObject)(newFlat);
|
|
10
|
+
}
|
|
11
|
+
const updated = Object.assign({}, oldFlat);
|
|
12
|
+
const removed = Object.assign({}, newFlat);
|
|
13
|
+
for (let key of Object.keys(newFlat)) {
|
|
14
|
+
if (newFlat[key] === oldFlat[key]) {
|
|
15
|
+
delete updated[key];
|
|
16
|
+
delete removed[key];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return [updated, removed];
|
|
20
|
+
}
|
|
21
|
+
exports.deepDiffFlat = deepDiffFlat;
|
|
22
|
+
function deepDiffTyped(lhsObj, rhsObj) {
|
|
23
|
+
const differences = deepDiffLow(lhsObj, rhsObj);
|
|
24
|
+
const deltaObj = {};
|
|
25
|
+
if (!differences) {
|
|
26
|
+
return deltaObj;
|
|
27
|
+
}
|
|
28
|
+
for (const difference of differences) {
|
|
29
|
+
(0, deep_diff_1.applyChange)(deltaObj, null, difference);
|
|
30
|
+
}
|
|
31
|
+
cleanupObjArrays(deltaObj);
|
|
32
|
+
return deltaObj;
|
|
33
|
+
}
|
|
34
|
+
exports.deepDiffTyped = deepDiffTyped;
|
|
35
|
+
;
|
|
36
|
+
function cleanupObjArrays(obj) {
|
|
37
|
+
var _a;
|
|
38
|
+
for (const objKey of (0, datum_utils_1.getObjectKeys)(obj)) {
|
|
39
|
+
if ((_a = obj[objKey]) === null || _a === void 0 ? void 0 : _a.filter) {
|
|
40
|
+
obj[objKey] = obj[objKey].filter((e) => !!e);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function deepDiffLow(lhsObj, rhsObj, orderInd = false) {
|
|
45
|
+
const differences = !orderInd
|
|
46
|
+
? (0, deep_diff_1.diff)(lhsObj, rhsObj)
|
|
47
|
+
: (0, deep_diff_1.orderIndependentDiff)(lhsObj, rhsObj);
|
|
48
|
+
return !(differences === null || differences === void 0 ? void 0 : differences.length)
|
|
49
|
+
? false
|
|
50
|
+
: differences;
|
|
51
|
+
}
|
|
52
|
+
exports.deepDiffLow = deepDiffLow;
|
|
53
|
+
;
|
|
54
|
+
//# sourceMappingURL=diff-high.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-high.js","sourceRoot":"","sources":["../../src/diff-high.ts"],"names":[],"mappings":";;;AAAA,oDAAqF;AAErF,+CAA6D;AAE7D,SAAgB,YAAY,CACxB,OAAY,EACZ,OAAY,EACZ,UAAmB,KAAK;IAExB,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,GAAG,IAAA,2BAAa,EAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,IAAA,2BAAa,EAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3C,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAnBD,oCAmBC;AAED,SAAgB,aAAa,CACzB,MAAS,EACT,MAAS;IAET,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,IAAA,uBAAW,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC;AACpB,CAAC;AAdD,sCAcC;AAAA,CAAC;AAEF,SAAS,gBAAgB,CAAC,GAAQ;;IAE9B,KAAK,MAAM,MAAM,IAAI,IAAA,2BAAa,EAAC,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,MAAA,GAAG,CAAC,MAAM,CAAC,0CAAE,MAAM,EAAE,CAAC;YACtB,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAgB,WAAW,CACvB,MAAS,EACT,MAAS,EACT,WAAoB,KAAK;IAEzB,MAAM,WAAW,GAAG,CAAC,QAAQ;QACzB,CAAC,CAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,MAAM,CAAC;QACtB,CAAC,CAAC,IAAA,gCAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAA;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,WAAW,CAAC;AACtB,CAAC;AAXD,kCAWC;AAAA,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export { type Diff };
|
|
2
|
+
export { type PreFilterFunction };
|
|
3
|
+
export { type PreFilterObject };
|
|
4
|
+
export { type Accumulator };
|
|
5
|
+
export { type Observer };
|
|
6
|
+
export { diff };
|
|
7
|
+
export { orderIndependentDiff };
|
|
8
|
+
export { accumulateDiff };
|
|
9
|
+
export { observableDiff };
|
|
10
|
+
export { orderIndependentObservableDiff };
|
|
11
|
+
export { applyChange, revertChange };
|
|
12
|
+
export { applyDiff };
|
|
13
|
+
export { realTypeOf };
|
|
14
|
+
export { getOrderIndependentHash };
|
|
15
|
+
type DiffNew<RHS> = {
|
|
16
|
+
readonly kind: "N";
|
|
17
|
+
readonly path?: any[];
|
|
18
|
+
readonly rhs: RHS;
|
|
19
|
+
};
|
|
20
|
+
type DiffDeleted<LHS> = {
|
|
21
|
+
readonly kind: "D";
|
|
22
|
+
readonly path?: any[];
|
|
23
|
+
readonly lhs: LHS;
|
|
24
|
+
};
|
|
25
|
+
type DiffEdit<LHS, RHS = LHS> = {
|
|
26
|
+
readonly kind: "E";
|
|
27
|
+
readonly path?: any[];
|
|
28
|
+
readonly lhs: LHS;
|
|
29
|
+
readonly rhs: RHS;
|
|
30
|
+
};
|
|
31
|
+
type DiffArray<LHS, RHS = LHS> = {
|
|
32
|
+
readonly kind: "A";
|
|
33
|
+
readonly path?: any[];
|
|
34
|
+
readonly index: number;
|
|
35
|
+
readonly item: Diff<LHS, RHS>;
|
|
36
|
+
};
|
|
37
|
+
type Diff<LHS, RHS = LHS> = DiffNew<RHS> | DiffDeleted<LHS> | DiffEdit<LHS, RHS> | DiffArray<LHS, RHS>;
|
|
38
|
+
type PreFilterFunction = (path: any[], key: any) => boolean;
|
|
39
|
+
type PreFilterObject<LHS, RHS = LHS> = {
|
|
40
|
+
prefilter?(path: any[], key: any): boolean;
|
|
41
|
+
normalize?(currentPath: any, key: any, lhs: LHS, rhs: RHS): [LHS, RHS] | false | undefined;
|
|
42
|
+
};
|
|
43
|
+
type PreFilter<LHS, RHS = LHS> = PreFilterFunction | PreFilterObject<LHS, RHS>;
|
|
44
|
+
type Filter<LHS, RHS = LHS> = (target: LHS, source: RHS, change: Diff<LHS, RHS>) => boolean;
|
|
45
|
+
type Accumulator<LHS, RHS = LHS> = {
|
|
46
|
+
push(diff: Diff<LHS, RHS>): void;
|
|
47
|
+
length: number;
|
|
48
|
+
};
|
|
49
|
+
type Observer<LHS, RHS = LHS> = (diff: Diff<LHS, RHS>) => void;
|
|
50
|
+
declare function diff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, prefilter?: PreFilter<LHS, RHS>): readonly Diff<LHS, RHS>[];
|
|
51
|
+
declare function orderIndependentDiff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, prefilter?: PreFilter<LHS, RHS>): readonly Diff<LHS, RHS>[];
|
|
52
|
+
declare function observableDiff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, observer?: Observer<LHS, RHS>, prefilter?: PreFilter<LHS, RHS>, orderIndependent?: boolean): Array<Diff<LHS, RHS>>;
|
|
53
|
+
declare function accumulateDiff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, prefilter?: PreFilter<LHS, RHS>, accum?: Accumulator<LHS, RHS>, orderIndependent?: boolean): Accumulator<LHS, RHS> | Diff<LHS, RHS>[];
|
|
54
|
+
declare function orderIndependentObservableDiff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, changes: Array<Diff<LHS, RHS>>, prefilter?: PreFilter<LHS, RHS>, path?: any[], key?: any, stack?: any[]): void;
|
|
55
|
+
declare function applyDiff<LHS, RHS = LHS>(target: LHS, source: RHS, filter?: Filter<LHS, RHS>): LHS;
|
|
56
|
+
declare function applyChange<LHS>(target: LHS, source: any, change: Diff<LHS, any>): void;
|
|
57
|
+
declare function revertChange<LHS>(target: LHS, source: any, change: Diff<LHS, any>): void;
|
|
58
|
+
declare function realTypeOf(val: any): string;
|
|
59
|
+
declare function getOrderIndependentHash(val: any): number;
|
|
60
|
+
//# sourceMappingURL=deep-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-diff.d.ts","sourceRoot":"","sources":["../../../src/diff-lib/deep-diff.ts"],"names":[],"mappings":"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"}
|