datum-merge 0.9.7 → 0.9.8
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/LICENSE +1 -1
- package/README.md +7 -4
- package/dist/cjs/datum-utils.js +22 -7
- package/dist/cjs/diff-high.js +27 -2
- package/dist/cjs/diff-lib/deep-diff.js +38 -36
- package/dist/cjs/index.js +6 -3
- package/dist/cjs/merge-conf.js +14 -6
- package/dist/cjs/merge-high.js +2 -2
- package/dist/cjs/patch-low.js +2 -0
- package/dist/{cjs → dts}/datum-utils.d.ts +3 -2
- package/dist/dts/datum-utils.d.ts.map +1 -0
- package/dist/dts/diff-high.d.ts +16 -0
- package/dist/dts/diff-high.d.ts.map +1 -0
- package/dist/{cjs → dts}/diff-lib/deep-diff.d.ts +14 -11
- package/dist/dts/diff-lib/deep-diff.d.ts.map +1 -0
- package/dist/{cjs → dts}/index.d.ts +2 -1
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/{cjs → dts}/merge-conf.d.ts +3 -3
- package/dist/dts/merge-conf.d.ts.map +1 -0
- package/dist/{esm → dts}/merge-high.d.ts +1 -1
- package/dist/{cjs → dts}/merge-high.d.ts.map +1 -1
- package/dist/{cjs → dts}/patch-low.d.ts.map +1 -1
- package/dist/esm/datum-utils.js +19 -5
- package/dist/esm/diff-high.js +25 -1
- package/dist/esm/diff-lib/deep-diff.js +37 -35
- package/dist/esm/index.js +2 -1
- package/dist/esm/merge-conf.js +12 -5
- package/dist/esm/merge-high.js +2 -2
- package/dist/esm/patch-low.js +2 -0
- package/package.json +12 -7
- package/src/datum-utils.ts +25 -7
- package/src/diff-high.ts +44 -3
- package/src/diff-lib/deep-diff.ts +60 -58
- package/src/index.ts +2 -1
- package/src/merge-conf.ts +25 -8
- package/src/merge-high.ts +4 -2
- package/src/patch-low.ts +4 -2
- package/dist/cjs/datum-utils.d.ts.map +0 -1
- package/dist/cjs/diff-high.d.ts +0 -15
- package/dist/cjs/diff-high.d.ts.map +0 -1
- package/dist/cjs/diff-lib/deep-diff.d.ts.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/merge-conf.d.ts.map +0 -1
- package/dist/cjs/merge-high.d.ts +0 -26
- package/dist/esm/datum-utils.d.ts +0 -12
- package/dist/esm/datum-utils.d.ts.map +0 -1
- package/dist/esm/diff-high.d.ts +0 -15
- package/dist/esm/diff-high.d.ts.map +0 -1
- package/dist/esm/diff-lib/deep-diff.d.ts +0 -60
- package/dist/esm/diff-lib/deep-diff.d.ts.map +0 -1
- package/dist/esm/index.d.ts +0 -26
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/merge-conf.d.ts +0 -22
- package/dist/esm/merge-conf.d.ts.map +0 -1
- package/dist/esm/merge-high.d.ts.map +0 -1
- package/dist/esm/merge-low.d.ts +0 -21
- package/dist/esm/merge-low.d.ts.map +0 -1
- package/dist/esm/patch-low.d.ts +0 -16
- package/dist/esm/patch-low.d.ts.map +0 -1
- package/dist/esm/type-utils.d.ts +0 -31
- package/dist/esm/type-utils.d.ts.map +0 -1
- /package/dist/{cjs → dts}/merge-low.d.ts +0 -0
- /package/dist/{cjs → dts}/merge-low.d.ts.map +0 -0
- /package/dist/{cjs → dts}/patch-low.d.ts +0 -0
- /package/dist/{cjs → dts}/type-utils.d.ts +0 -0
- /package/dist/{cjs → dts}/type-utils.d.ts.map +0 -0
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -31,7 +31,10 @@ const changed = detailMerge(target, source, {
|
|
|
31
31
|
mykey: UpdateCode.I,
|
|
32
32
|
myarr: UpdateCode.XM,
|
|
33
33
|
anobj: UpdateCode.B,
|
|
34
|
-
myobj: {
|
|
34
|
+
myobj: {
|
|
35
|
+
myid: UpdateCode.I,
|
|
36
|
+
vals: UpdateCode.XR,
|
|
37
|
+
},
|
|
35
38
|
});
|
|
36
39
|
```
|
|
37
40
|
|
|
@@ -55,7 +58,7 @@ const diff = customMerge(target, source, conf);
|
|
|
55
58
|
|
|
56
59
|
## Upcoming Features
|
|
57
60
|
|
|
58
|
-
1. inline the
|
|
61
|
+
1. inline the [deep-diff](https://github.com/flitbit/diff) library which unmaintained and buggy. ([available](/src/diff-lib/README.md))
|
|
59
62
|
|
|
60
63
|
2. formalize config schema for deeply nested objects (for v1).
|
|
61
64
|
|
|
@@ -92,9 +95,9 @@ The value is migrated from the source field to the target field only if the pred
|
|
|
92
95
|
| I | `sX & t0` | insert only, no update or delete |
|
|
93
96
|
| D | `s0 & tX` | delete only, no update or insert |
|
|
94
97
|
| XR | `sX & tX` | full vector replacement |
|
|
95
|
-
| XM | `
|
|
98
|
+
| XM | `t ∪ s` | set union, vector merge |
|
|
96
99
|
| XD | `t - s` | set difference, delete given values |
|
|
97
|
-
| XI | `
|
|
100
|
+
| XI | `t ∩ s` | set intersection, delete missing values |
|
|
98
101
|
| XS | `t + s` | preserve order insert (allows dupes) |
|
|
99
102
|
| XF | `s + t` | insert from start (allows dupes) |
|
|
100
103
|
|
package/dist/cjs/datum-utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.selectObjKeys = exports.getGlobKeys = exports.createGlobRegex = exports.areArraysEqual = exports.toUniqueArray = exports.deepClone = exports.deepEqualsPath = exports.deepEquals = exports.createValueKeys = exports.getObjectKeys = void 0;
|
|
7
7
|
const lodash_es_1 = require("lodash-es");
|
|
8
8
|
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
9
9
|
function getObjectKeys(obj, excludeKeys, includeKeys) {
|
|
@@ -58,21 +58,36 @@ function areArraysEqual(arr1, arr2) {
|
|
|
58
58
|
}
|
|
59
59
|
exports.areArraysEqual = areArraysEqual;
|
|
60
60
|
function createGlobRegex(search) {
|
|
61
|
-
|
|
61
|
+
const pattern = search.replace(/\*/g, ".+");
|
|
62
62
|
return new RegExp(`^${pattern}$`);
|
|
63
63
|
}
|
|
64
64
|
exports.createGlobRegex = createGlobRegex;
|
|
65
|
-
function
|
|
65
|
+
function getGlobKeys(obj, includePats = ["*"], excludeKeys) {
|
|
66
66
|
const includeKeys = [];
|
|
67
67
|
if (!obj || !(includePats === null || includePats === void 0 ? void 0 : includePats.length)) {
|
|
68
68
|
return includeKeys;
|
|
69
69
|
}
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
const labels = getObjectKeys(obj, excludeKeys);
|
|
71
|
+
if (!labels || !labels.length) {
|
|
72
|
+
return includeKeys;
|
|
73
|
+
}
|
|
74
|
+
const globPats = includePats.filter((s) => s.includes("*"))
|
|
75
|
+
.map((g) => createGlobRegex(g));
|
|
76
|
+
for (const label of labels) {
|
|
77
|
+
if (includePats.includes(label)) {
|
|
78
|
+
includeKeys.push(label);
|
|
79
|
+
}
|
|
80
|
+
else if (globPats.findIndex((r) => r.test(label)) >= 0) {
|
|
73
81
|
includeKeys.push(label);
|
|
74
82
|
}
|
|
75
83
|
}
|
|
76
84
|
return includeKeys;
|
|
77
85
|
}
|
|
78
|
-
exports.
|
|
86
|
+
exports.getGlobKeys = getGlobKeys;
|
|
87
|
+
function selectObjKeys(obj, includeKeys) {
|
|
88
|
+
if (!(includeKeys === null || includeKeys === void 0 ? void 0 : includeKeys.length))
|
|
89
|
+
return Object.assign({}, obj);
|
|
90
|
+
return Object.fromEntries(Object.entries(obj)
|
|
91
|
+
.filter(([k, _]) => includeKeys.includes(k)));
|
|
92
|
+
}
|
|
93
|
+
exports.selectObjKeys = selectObjKeys;
|
package/dist/cjs/diff-high.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.unflattenObject = exports.flattenObject = exports.deepDiffFlat = exports.deepDiffLow = exports.deepDiffTyped = void 0;
|
|
3
|
+
exports.unflattenObject = exports.flattenObject = exports.deepDiffFlat = exports.deepDiffLow = exports.antiDiffTyped = exports.deepDiffTyped = void 0;
|
|
4
|
+
const type_utils_1 = require("./type-utils");
|
|
4
5
|
const deep_diff_1 = require("./diff-lib/deep-diff");
|
|
5
6
|
function deepDiffTyped(lhsObj, rhsObj, orderInd = false) {
|
|
7
|
+
if ((0, type_utils_1.emptyObject)(rhsObj)) {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
if ((0, type_utils_1.emptyObject)(lhsObj)) {
|
|
11
|
+
return Object.assign({}, rhsObj);
|
|
12
|
+
}
|
|
6
13
|
const differences = deepDiffLow(lhsObj, rhsObj, orderInd);
|
|
7
14
|
const deltaObj = {};
|
|
8
15
|
if (!differences) {
|
|
9
16
|
return deltaObj;
|
|
10
17
|
}
|
|
11
18
|
for (const difference of differences) {
|
|
12
|
-
(0, deep_diff_1.applyChange)(deltaObj,
|
|
19
|
+
(0, deep_diff_1.applyChange)(deltaObj, undefined, difference);
|
|
13
20
|
}
|
|
14
21
|
cleanupObjArrays(deltaObj);
|
|
15
22
|
return deltaObj;
|
|
@@ -24,6 +31,24 @@ function cleanupObjArrays(obj) {
|
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
33
|
}
|
|
34
|
+
function antiDiffTyped(lhsObj, rhsObj, orderInd = false) {
|
|
35
|
+
if ((0, type_utils_1.emptyObject)(lhsObj) || (0, type_utils_1.emptyObject)(rhsObj)) {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
const differences = deepDiffLow(lhsObj, rhsObj, orderInd);
|
|
39
|
+
if (!differences) {
|
|
40
|
+
return Object.assign({}, lhsObj);
|
|
41
|
+
}
|
|
42
|
+
const modFields = new Set();
|
|
43
|
+
differences.map((d) => d === null || d === void 0 ? void 0 : d.path)
|
|
44
|
+
.filter((p) => !!p && p.length > 0)
|
|
45
|
+
.map((p) => (p === null || p === void 0 ? void 0 : p[0]).toString())
|
|
46
|
+
.forEach((s) => modFields.add(s));
|
|
47
|
+
const shareObj = Object.fromEntries(Object.entries(lhsObj)
|
|
48
|
+
.filter(([k, _]) => !modFields.has(k)));
|
|
49
|
+
return shareObj;
|
|
50
|
+
}
|
|
51
|
+
exports.antiDiffTyped = antiDiffTyped;
|
|
27
52
|
function deepDiffLow(lhsObj, rhsObj, orderInd = false) {
|
|
28
53
|
const differences = !orderInd
|
|
29
54
|
? (0, deep_diff_1.diff)(lhsObj, rhsObj)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOrderIndependentHash = exports.realTypeOf = exports.applyDiff = exports.revertChange = exports.applyChange = exports.
|
|
3
|
+
exports.getOrderIndependentHash = exports.realTypeOf = exports.applyDiff = exports.revertChange = exports.applyChange = exports.orderIndependentDeepDiff = exports.observableDiff = exports.accumulateDiff = exports.orderIndependentDiff = exports.diff = void 0;
|
|
4
4
|
const typeNormalizer = {
|
|
5
5
|
normalize: function (currentPath, key, lhs, rhs) {
|
|
6
6
|
if (realTypeOf(lhs) === 'regexp' && realTypeOf(rhs) === 'regexp') {
|
|
@@ -21,14 +21,13 @@ function diff(lhs, rhs, prefilter) {
|
|
|
21
21
|
}
|
|
22
22
|
exports.diff = diff;
|
|
23
23
|
function orderIndependentDiff(lhs, rhs, prefilter) {
|
|
24
|
-
const changes =
|
|
25
|
-
deepDiff(lhs, rhs, changes, prefilter, null, null, null, true);
|
|
24
|
+
const changes = observableDiff(lhs, rhs, undefined, prefilter, true);
|
|
26
25
|
return (changes === null || changes === void 0 ? void 0 : changes.length) ? changes : undefined;
|
|
27
26
|
}
|
|
28
27
|
exports.orderIndependentDiff = orderIndependentDiff;
|
|
29
28
|
function observableDiff(lhs, rhs, observer, prefilter, orderIndependent) {
|
|
30
29
|
const changes = [];
|
|
31
|
-
deepDiff(lhs, rhs, changes, prefilter,
|
|
30
|
+
deepDiff(lhs, rhs, changes, prefilter, undefined, undefined, undefined, orderIndependent);
|
|
32
31
|
if (observer) {
|
|
33
32
|
changes.forEach((c) => observer(c));
|
|
34
33
|
}
|
|
@@ -46,10 +45,10 @@ function accumulateDiff(lhs, rhs, prefilter, accum, orderIndependent) {
|
|
|
46
45
|
return accum ? accum : (changes.length) ? changes : undefined;
|
|
47
46
|
}
|
|
48
47
|
exports.accumulateDiff = accumulateDiff;
|
|
49
|
-
function
|
|
48
|
+
function orderIndependentDeepDiff(lhs, rhs, changes, prefilter, path, key, stack) {
|
|
50
49
|
deepDiff(lhs, rhs, changes, prefilter, path, key, stack, true);
|
|
51
50
|
}
|
|
52
|
-
exports.
|
|
51
|
+
exports.orderIndependentDeepDiff = orderIndependentDeepDiff;
|
|
53
52
|
function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndependent = false) {
|
|
54
53
|
changes = changes || [];
|
|
55
54
|
path = path || [];
|
|
@@ -82,11 +81,11 @@ function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndepende
|
|
|
82
81
|
const ltype = typeof lhs;
|
|
83
82
|
const rtype = typeof rhs;
|
|
84
83
|
const ldefined = ltype !== 'undefined' ||
|
|
85
|
-
(stack && (stack.length > 0) && stack
|
|
86
|
-
Object.getOwnPropertyDescriptor(stack
|
|
84
|
+
(stack && (stack.length > 0) && stack.at(-1).lhs &&
|
|
85
|
+
Object.getOwnPropertyDescriptor(stack.at(-1).lhs, key));
|
|
87
86
|
const rdefined = rtype !== 'undefined' ||
|
|
88
|
-
(stack && (stack.length > 0) && stack
|
|
89
|
-
Object.getOwnPropertyDescriptor(stack
|
|
87
|
+
(stack && (stack.length > 0) && stack.at(-1).rhs &&
|
|
88
|
+
Object.getOwnPropertyDescriptor(stack.at(-1).rhs, key));
|
|
90
89
|
if (!ldefined && rdefined) {
|
|
91
90
|
changes.push({
|
|
92
91
|
kind: 'N',
|
|
@@ -120,12 +119,11 @@ function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndepende
|
|
|
120
119
|
lhs,
|
|
121
120
|
rhs
|
|
122
121
|
});
|
|
123
|
-
|
|
122
|
+
return;
|
|
124
123
|
}
|
|
125
|
-
|
|
126
|
-
let i, j;
|
|
124
|
+
if (ltype === 'object' && lhs !== null && rhs !== null) {
|
|
127
125
|
let other = false;
|
|
128
|
-
for (i = stack.length - 1; i > -1; --i) {
|
|
126
|
+
for (let i = stack.length - 1; i > -1; --i) {
|
|
129
127
|
if (stack[i].lhs === lhs) {
|
|
130
128
|
other = true;
|
|
131
129
|
break;
|
|
@@ -134,22 +132,24 @@ function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndepende
|
|
|
134
132
|
if (!other) {
|
|
135
133
|
stack.push({ lhs: lhs, rhs: rhs });
|
|
136
134
|
if (Array.isArray(lhs) && Array.isArray(rhs)) {
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
let lArr = lhs;
|
|
136
|
+
let rArr = rhs;
|
|
139
137
|
if (orderIndependent) {
|
|
140
|
-
|
|
138
|
+
lArr = lArr.slice(0).sort(function (a, b) {
|
|
141
139
|
return getOrderIndependentHash(a) - getOrderIndependentHash(b);
|
|
142
140
|
});
|
|
143
|
-
|
|
141
|
+
rArr = rArr.slice(0).sort(function (a, b) {
|
|
144
142
|
return getOrderIndependentHash(a) - getOrderIndependentHash(b);
|
|
145
143
|
});
|
|
146
144
|
}
|
|
145
|
+
let i = rArr.length - 1;
|
|
146
|
+
let j = lArr.length - 1;
|
|
147
147
|
while (i > j) {
|
|
148
148
|
changes.push({
|
|
149
149
|
kind: 'A',
|
|
150
150
|
path: currentPath,
|
|
151
151
|
index: i,
|
|
152
|
-
item: { kind: 'N', rhs:
|
|
152
|
+
item: { kind: 'N', rhs: rArr[i--], path: undefined },
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
155
|
while (j > i) {
|
|
@@ -157,31 +157,33 @@ function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndepende
|
|
|
157
157
|
kind: 'A',
|
|
158
158
|
path: currentPath,
|
|
159
159
|
index: j,
|
|
160
|
-
item: { kind: 'D', lhs:
|
|
160
|
+
item: { kind: 'D', lhs: lArr[j--], path: undefined },
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
163
|
for (; i >= 0; --i) {
|
|
164
|
-
deepDiff(
|
|
164
|
+
deepDiff(lArr[i], rArr[i], changes, prefilter, currentPath, i, stack, orderIndependent);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
else {
|
|
168
|
-
const
|
|
169
|
-
const
|
|
170
|
-
|
|
168
|
+
const lObj = lhs;
|
|
169
|
+
const rObj = rhs;
|
|
170
|
+
const akeys = [...Object.keys(lObj), ...Object.getOwnPropertySymbols(lObj)];
|
|
171
|
+
const pkeys = [...Object.keys(rObj), ...Object.getOwnPropertySymbols(rObj)];
|
|
172
|
+
for (let i = 0; i < akeys.length; ++i) {
|
|
171
173
|
const k = akeys[i];
|
|
172
174
|
const ki = pkeys.indexOf(k);
|
|
173
175
|
if (ki >= 0) {
|
|
174
|
-
deepDiff(
|
|
176
|
+
deepDiff(lObj[k], rObj[k], changes, prefilter, currentPath, k, stack, orderIndependent);
|
|
175
177
|
pkeys[ki] = null;
|
|
176
178
|
}
|
|
177
179
|
else {
|
|
178
|
-
deepDiff(
|
|
180
|
+
deepDiff(lObj[k], undefined, changes, prefilter, currentPath, k, stack, orderIndependent);
|
|
179
181
|
}
|
|
180
182
|
}
|
|
181
|
-
for (i = 0; i < pkeys.length; ++i) {
|
|
183
|
+
for (let i = 0; i < pkeys.length; ++i) {
|
|
182
184
|
const k = pkeys[i];
|
|
183
185
|
if (k) {
|
|
184
|
-
deepDiff(undefined,
|
|
186
|
+
deepDiff(undefined, rObj[k], changes, prefilter, currentPath, k, stack, orderIndependent);
|
|
185
187
|
}
|
|
186
188
|
}
|
|
187
189
|
}
|
|
@@ -209,18 +211,18 @@ function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndepende
|
|
|
209
211
|
}
|
|
210
212
|
function applyDiff(target, source, filter) {
|
|
211
213
|
if (!target || !source) {
|
|
212
|
-
return;
|
|
214
|
+
return target;
|
|
213
215
|
}
|
|
214
216
|
const onChange = function (change) {
|
|
215
217
|
if (!filter || filter(target, source, change)) {
|
|
216
|
-
applyChange(target,
|
|
218
|
+
applyChange(target, undefined, change);
|
|
217
219
|
}
|
|
218
220
|
};
|
|
219
221
|
observableDiff(target, source, onChange);
|
|
220
222
|
return target;
|
|
221
223
|
}
|
|
222
224
|
exports.applyDiff = applyDiff;
|
|
223
|
-
function applyChange(target,
|
|
225
|
+
function applyChange(target, unused, change) {
|
|
224
226
|
var _a;
|
|
225
227
|
if (!target || !change || !change.kind) {
|
|
226
228
|
return;
|
|
@@ -255,10 +257,10 @@ function applyChange(target, source, change) {
|
|
|
255
257
|
exports.applyChange = applyChange;
|
|
256
258
|
function applyArrayChange(arr, index, change) {
|
|
257
259
|
if (change.path && change.path.length > 0) {
|
|
258
|
-
const
|
|
260
|
+
const last = change.path.length - 1;
|
|
259
261
|
let it = arr[index];
|
|
260
262
|
let i;
|
|
261
|
-
for (i = 0; i <
|
|
263
|
+
for (i = 0; i < last; i++) {
|
|
262
264
|
it = it[change.path[i]];
|
|
263
265
|
}
|
|
264
266
|
switch (change.kind) {
|
|
@@ -290,7 +292,7 @@ function applyArrayChange(arr, index, change) {
|
|
|
290
292
|
}
|
|
291
293
|
return arr;
|
|
292
294
|
}
|
|
293
|
-
function revertChange(target,
|
|
295
|
+
function revertChange(target, unused, change) {
|
|
294
296
|
var _a;
|
|
295
297
|
if (!target || !change || !change.kind) {
|
|
296
298
|
return;
|
|
@@ -323,10 +325,10 @@ function revertChange(target, source, change) {
|
|
|
323
325
|
exports.revertChange = revertChange;
|
|
324
326
|
function revertArrayChange(arr, index, change) {
|
|
325
327
|
if (change.path && change.path.length > 0) {
|
|
326
|
-
const
|
|
328
|
+
const last = change.path.length - 1;
|
|
327
329
|
let it = arr[index];
|
|
328
330
|
let i;
|
|
329
|
-
for (i = 0; i <
|
|
331
|
+
for (i = 0; i < last; i++) {
|
|
330
332
|
it = it[change.path[i]];
|
|
331
333
|
}
|
|
332
334
|
switch (change.kind) {
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.deepDiff = exports.mergeDiff = exports.merge = exports.deepPatchLog = exports.asLodashPath = exports.diffToPatchLog = exports.immutableCustomMerge = exports.customMerge = exports.fillUpdateCodes = exports.immutableDetailMerge = exports.detailMerge = exports.diffFromMerge = exports.immutableDeepMerge = exports.deepMerge = exports.immutableMerge = exports.shallowMerge = exports.updateCodeInfo = exports.MC = exports.UpdateCode = exports.unflattenObject = exports.flattenObject = exports.deepDiffFlat = exports.deepDiffTyped = exports.deepDiffLow = exports.deepClone = exports.deepEquals = void 0;
|
|
17
|
+
exports.deepDiff = exports.mergeDiff = exports.merge = exports.deepPatchLog = exports.asLodashPath = exports.diffToPatchLog = exports.bypassMerge = exports.immutableCustomMerge = exports.customMerge = exports.fillUpdateCodes = exports.immutableDetailMerge = exports.detailMerge = exports.diffFromMerge = exports.immutableDeepMerge = exports.deepMerge = exports.immutableMerge = exports.shallowMerge = exports.updateCodeInfo = exports.MC = exports.UpdateCode = exports.unflattenObject = exports.flattenObject = exports.deepDiffFlat = exports.antiDiffTyped = exports.deepDiffTyped = exports.deepDiffLow = exports.deepClone = exports.deepEquals = void 0;
|
|
18
18
|
var datum_utils_1 = require("./datum-utils");
|
|
19
19
|
Object.defineProperty(exports, "deepEquals", { enumerable: true, get: function () { return datum_utils_1.deepEquals; } });
|
|
20
20
|
var datum_utils_2 = require("./datum-utils");
|
|
@@ -23,6 +23,7 @@ var diff_high_1 = require("./diff-high");
|
|
|
23
23
|
Object.defineProperty(exports, "deepDiffLow", { enumerable: true, get: function () { return diff_high_1.deepDiffLow; } });
|
|
24
24
|
var diff_high_2 = require("./diff-high");
|
|
25
25
|
Object.defineProperty(exports, "deepDiffTyped", { enumerable: true, get: function () { return diff_high_2.deepDiffTyped; } });
|
|
26
|
+
Object.defineProperty(exports, "antiDiffTyped", { enumerable: true, get: function () { return diff_high_2.antiDiffTyped; } });
|
|
26
27
|
var diff_high_3 = require("./diff-high");
|
|
27
28
|
Object.defineProperty(exports, "deepDiffFlat", { enumerable: true, get: function () { return diff_high_3.deepDiffFlat; } });
|
|
28
29
|
var diff_high_4 = require("./diff-high");
|
|
@@ -50,6 +51,8 @@ Object.defineProperty(exports, "fillUpdateCodes", { enumerable: true, get: funct
|
|
|
50
51
|
var merge_conf_3 = require("./merge-conf");
|
|
51
52
|
Object.defineProperty(exports, "customMerge", { enumerable: true, get: function () { return merge_conf_3.customMerge; } });
|
|
52
53
|
Object.defineProperty(exports, "immutableCustomMerge", { enumerable: true, get: function () { return merge_conf_3.immutableCustomMerge; } });
|
|
54
|
+
var merge_conf_4 = require("./merge-conf");
|
|
55
|
+
Object.defineProperty(exports, "bypassMerge", { enumerable: true, get: function () { return merge_conf_4.bypassMerge; } });
|
|
53
56
|
var patch_low_1 = require("./patch-low");
|
|
54
57
|
Object.defineProperty(exports, "diffToPatchLog", { enumerable: true, get: function () { return patch_low_1.diffToPatchLog; } });
|
|
55
58
|
Object.defineProperty(exports, "asLodashPath", { enumerable: true, get: function () { return patch_low_1.asLodashPath; } });
|
|
@@ -57,8 +60,8 @@ var patch_low_2 = require("./patch-low");
|
|
|
57
60
|
Object.defineProperty(exports, "deepPatchLog", { enumerable: true, get: function () { return patch_low_2.deepPatchLog; } });
|
|
58
61
|
var merge_high_5 = require("./merge-high");
|
|
59
62
|
Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return merge_high_5.deepMerge; } });
|
|
60
|
-
var
|
|
61
|
-
Object.defineProperty(exports, "mergeDiff", { enumerable: true, get: function () { return
|
|
63
|
+
var merge_conf_5 = require("./merge-conf");
|
|
64
|
+
Object.defineProperty(exports, "mergeDiff", { enumerable: true, get: function () { return merge_conf_5.customMerge; } });
|
|
62
65
|
__exportStar(require("./diff-lib/deep-diff"), exports);
|
|
63
66
|
var diff_high_5 = require("./diff-high");
|
|
64
67
|
Object.defineProperty(exports, "deepDiff", { enumerable: true, get: function () { return diff_high_5.deepDiffLow; } });
|
package/dist/cjs/merge-conf.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fillUpdateCodes = exports.immutableCustomMerge = exports.customMerge = exports.
|
|
3
|
+
exports.fillUpdateCodes = exports.immutableCustomMerge = exports.bypassMerge = exports.customMerge = exports.getDetailKeys = exports.immutableDetailMerge = exports.detailMerge = void 0;
|
|
4
4
|
const type_utils_1 = require("./type-utils");
|
|
5
5
|
const datum_utils_1 = require("./datum-utils");
|
|
6
6
|
const diff_high_1 = require("./diff-high");
|
|
@@ -43,7 +43,7 @@ function immutableDetailMerge(target, source, mergeCodes) {
|
|
|
43
43
|
return targetCopy;
|
|
44
44
|
}
|
|
45
45
|
exports.immutableDetailMerge = immutableDetailMerge;
|
|
46
|
-
function
|
|
46
|
+
function getDetailKeys(obj, mergeCodes, excludeKeys) {
|
|
47
47
|
const includeKeys = [];
|
|
48
48
|
if (!obj || !mergeCodes) {
|
|
49
49
|
return includeKeys;
|
|
@@ -57,7 +57,7 @@ function selectDetailKeys(obj, mergeCodes, excludeKeys) {
|
|
|
57
57
|
}
|
|
58
58
|
return includeKeys;
|
|
59
59
|
}
|
|
60
|
-
exports.
|
|
60
|
+
exports.getDetailKeys = getDetailKeys;
|
|
61
61
|
function customMerge(target, source, mergeConf, excludeKeys) {
|
|
62
62
|
switch (mergeConf) {
|
|
63
63
|
case merge_low_1.UpdateCode.C:
|
|
@@ -67,9 +67,7 @@ function customMerge(target, source, mergeConf, excludeKeys) {
|
|
|
67
67
|
case merge_low_1.UpdateCode.N:
|
|
68
68
|
return false;
|
|
69
69
|
case merge_low_1.UpdateCode.Y:
|
|
70
|
-
|
|
71
|
-
Object.assign(target, Object.assign({}, source));
|
|
72
|
-
return delta;
|
|
70
|
+
return bypassMerge(target, source);
|
|
73
71
|
}
|
|
74
72
|
const mergeCodes = (0, exports.fillUpdateCodes)(source, mergeConf, false, excludeKeys);
|
|
75
73
|
if ((0, type_utils_1.emptyObject)(mergeCodes)) {
|
|
@@ -84,6 +82,16 @@ function customMerge(target, source, mergeConf, excludeKeys) {
|
|
|
84
82
|
return false;
|
|
85
83
|
}
|
|
86
84
|
exports.customMerge = customMerge;
|
|
85
|
+
function bypassMerge(target, source) {
|
|
86
|
+
if ((0, type_utils_1.emptyObject)(source)) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
let delta = (0, diff_high_1.deepDiffTyped)(target, source, true);
|
|
90
|
+
Object.assign(target, Object.assign({}, source));
|
|
91
|
+
delta = (0, datum_utils_1.selectObjKeys)(delta, (0, datum_utils_1.getObjectKeys)(source));
|
|
92
|
+
return (0, type_utils_1.emptyObject)(delta) ? false : delta;
|
|
93
|
+
}
|
|
94
|
+
exports.bypassMerge = bypassMerge;
|
|
87
95
|
function immutableCustomMerge(target, source, mergeConf, skipFill = false) {
|
|
88
96
|
const mergeCodes = !skipFill
|
|
89
97
|
? (0, exports.fillUpdateCodes)(source, mergeConf)
|
package/dist/cjs/merge-high.js
CHANGED
|
@@ -96,9 +96,9 @@ function immutableDeepMerge(target, source, scalarCode, vectorCode, nestedCode)
|
|
|
96
96
|
}
|
|
97
97
|
exports.immutableDeepMerge = immutableDeepMerge;
|
|
98
98
|
;
|
|
99
|
-
function diffFromMerge(target, source, scalarCode, vectorCode, nestedCode) {
|
|
99
|
+
function diffFromMerge(target, source, scalarCode, vectorCode, nestedCode, orderInd = false) {
|
|
100
100
|
const targetCopy = immutableDeepMerge(target, source, scalarCode, vectorCode, nestedCode);
|
|
101
|
-
const delta = (0, diff_high_1.deepDiffTyped)(target, targetCopy);
|
|
101
|
+
const delta = (0, diff_high_1.deepDiffTyped)(target, targetCopy, orderInd);
|
|
102
102
|
return (0, type_utils_1.emptyObject)(delta) ? false : delta;
|
|
103
103
|
}
|
|
104
104
|
exports.diffFromMerge = diffFromMerge;
|
package/dist/cjs/patch-low.js
CHANGED
|
@@ -44,6 +44,8 @@ exports.deepPatchLog = deepPatchLog;
|
|
|
44
44
|
function escapePathPart(path) {
|
|
45
45
|
if (typeof path === 'number')
|
|
46
46
|
return path.toString();
|
|
47
|
+
if (typeof path === 'symbol')
|
|
48
|
+
return path.toString();
|
|
47
49
|
if (path.indexOf('/') === -1 && path.indexOf('~') === -1)
|
|
48
50
|
return path;
|
|
49
51
|
return path.replace(/~/g, '~0').replace(/\//g, '~1');
|
|
@@ -4,9 +4,10 @@ export declare function createValueKeys<T>(keys: string[], value: T): {
|
|
|
4
4
|
};
|
|
5
5
|
export declare function deepEquals(lhs: any, rhs: any): boolean;
|
|
6
6
|
export declare function deepEqualsPath(lhs: any, rhs: any, atPath: string): boolean;
|
|
7
|
-
export declare function deepClone(val:
|
|
7
|
+
export declare function deepClone<T = any>(val: T): T;
|
|
8
8
|
export declare function toUniqueArray<T>(arr: T[]): T[];
|
|
9
9
|
export declare function areArraysEqual<T>(arr1: T[] | undefined, arr2: T[] | undefined): boolean;
|
|
10
10
|
export declare function createGlobRegex(search: string): RegExp;
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function getGlobKeys(obj: any, includePats?: string[], excludeKeys?: string[]): string[];
|
|
12
|
+
export declare function selectObjKeys<T extends object>(obj: T, includeKeys: string[]): Partial<T>;
|
|
12
13
|
//# 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,eAAe,CAAC,CAAC,EAC7B,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,CAAC,GACT;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAEtB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAEtD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE5C;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,WAAW,CACvB,GAAG,EAAE,GAAG,EACR,WAAW,GAAE,MAAM,EAAU,EAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAmBV;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC1C,GAAG,EAAE,CAAC,EACN,WAAW,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,CAAC,CAAC,CAMZ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Diff } from "./diff-lib/deep-diff";
|
|
2
|
+
export declare function deepDiffTyped<T extends object>(lhsObj: T, rhsObj: T, orderInd?: boolean): Partial<T>;
|
|
3
|
+
export declare function antiDiffTyped<T extends object>(lhsObj: T, rhsObj: object, orderInd?: boolean): Partial<T>;
|
|
4
|
+
export declare function deepDiffLow<T = any, S = T>(lhsObj: T, rhsObj: S, orderInd?: boolean): readonly Diff<T, S>[] | false;
|
|
5
|
+
export declare function deepDiffFlat(oldFlat: any, newFlat: any, flatten?: boolean): [any, any];
|
|
6
|
+
export declare function flattenObject(obj: {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}): {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
};
|
|
11
|
+
export declare function unflattenObject(flatObj: {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}): {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
};
|
|
16
|
+
//# 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":"AACA,OAAO,EAAE,IAAI,EAA2C,MAAM,sBAAsB,CAAC;AAOrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC1C,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,QAAQ,GAAE,OAAe,GAC1B,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAeD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC1C,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,OAAe,GAC1B,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAED,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EACtC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,QAAQ,GAAE,OAAe,GAC1B,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAO/B;AAID,wBAAgB,YAAY,CACxB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,OAAO,GAAE,OAAc,GACxB,CAAC,GAAG,EAAE,GAAG,CAAC,CAeZ;AAED,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"}
|
|
@@ -3,34 +3,35 @@ export { type PreFilterFunction };
|
|
|
3
3
|
export { type PreFilterObject };
|
|
4
4
|
export { type Accumulator };
|
|
5
5
|
export { type Observer };
|
|
6
|
+
export { type DiffPath };
|
|
6
7
|
export { diff };
|
|
7
8
|
export { orderIndependentDiff };
|
|
8
9
|
export { accumulateDiff };
|
|
9
10
|
export { observableDiff };
|
|
10
|
-
export {
|
|
11
|
+
export { orderIndependentDeepDiff };
|
|
11
12
|
export { applyChange, revertChange };
|
|
12
13
|
export { applyDiff };
|
|
13
14
|
export { realTypeOf };
|
|
14
15
|
export { getOrderIndependentHash };
|
|
15
16
|
type DiffNew<RHS> = {
|
|
16
17
|
readonly kind: "N";
|
|
17
|
-
readonly path
|
|
18
|
+
readonly path: any[];
|
|
18
19
|
readonly rhs: RHS;
|
|
19
20
|
};
|
|
20
21
|
type DiffDeleted<LHS> = {
|
|
21
22
|
readonly kind: "D";
|
|
22
|
-
readonly path
|
|
23
|
+
readonly path: any[];
|
|
23
24
|
readonly lhs: LHS;
|
|
24
25
|
};
|
|
25
26
|
type DiffEdit<LHS, RHS = LHS> = {
|
|
26
27
|
readonly kind: "E";
|
|
27
|
-
readonly path
|
|
28
|
+
readonly path: any[];
|
|
28
29
|
readonly lhs: LHS;
|
|
29
30
|
readonly rhs: RHS;
|
|
30
31
|
};
|
|
31
32
|
type DiffArray<LHS, RHS = LHS> = {
|
|
32
33
|
readonly kind: "A";
|
|
33
|
-
readonly path
|
|
34
|
+
readonly path: any[];
|
|
34
35
|
readonly index: number;
|
|
35
36
|
readonly item: Diff<LHS, RHS>;
|
|
36
37
|
};
|
|
@@ -47,14 +48,16 @@ type Accumulator<LHS, RHS = LHS> = {
|
|
|
47
48
|
length: number;
|
|
48
49
|
};
|
|
49
50
|
type Observer<LHS, RHS = LHS> = (diff: Diff<LHS, RHS>) => void;
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
type PathKey = string | number | symbol;
|
|
52
|
+
type DiffPath = PathKey[];
|
|
53
|
+
declare function diff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, prefilter?: PreFilter<LHS, RHS>): readonly Diff<LHS, RHS>[] | undefined;
|
|
54
|
+
declare function orderIndependentDiff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, prefilter?: PreFilter<LHS, RHS>): readonly Diff<LHS, RHS>[] | undefined;
|
|
52
55
|
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
|
|
56
|
+
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>[] | undefined;
|
|
57
|
+
declare function orderIndependentDeepDiff<LHS, RHS = LHS>(lhs: LHS, rhs: RHS, changes: Array<Diff<LHS, RHS>>, prefilter?: PreFilter<LHS, RHS>, path?: any[], key?: any, stack?: any[]): void;
|
|
55
58
|
declare function applyDiff<LHS, RHS = LHS>(target: LHS, source: RHS, filter?: Filter<LHS, RHS>): LHS;
|
|
56
|
-
declare function applyChange<LHS>(target: LHS,
|
|
57
|
-
declare function revertChange<LHS>(target: LHS,
|
|
59
|
+
declare function applyChange<LHS>(target: LHS, unused: any, change: Diff<LHS, any>): void;
|
|
60
|
+
declare function revertChange<LHS>(target: LHS, unused: any, change: Diff<LHS, any>): void;
|
|
58
61
|
declare function realTypeOf(val: any): string;
|
|
59
62
|
declare function getOrderIndependentHash(val: any): number;
|
|
60
63
|
//# 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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { deepEquals } from "./datum-utils";
|
|
2
2
|
export { deepClone } from "./datum-utils";
|
|
3
3
|
export { deepDiffLow } from "./diff-high";
|
|
4
|
-
export { deepDiffTyped } from "./diff-high";
|
|
4
|
+
export { deepDiffTyped, antiDiffTyped } from "./diff-high";
|
|
5
5
|
export { deepDiffFlat } from "./diff-high";
|
|
6
6
|
export { flattenObject, unflattenObject } from "./diff-high";
|
|
7
7
|
export { UpdateCode } from "./merge-low";
|
|
@@ -16,6 +16,7 @@ export { detailMerge, immutableDetailMerge } from "./merge-conf";
|
|
|
16
16
|
export { type MergeConfig } from "./merge-conf";
|
|
17
17
|
export { fillUpdateCodes } from "./merge-conf";
|
|
18
18
|
export { customMerge, immutableCustomMerge } from "./merge-conf";
|
|
19
|
+
export { bypassMerge } from "./merge-conf";
|
|
19
20
|
export { type PatchResult } from "./patch-low";
|
|
20
21
|
export { diffToPatchLog, asLodashPath } from "./patch-low";
|
|
21
22
|
export { deepPatchLog } from "./patch-low";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TupleObj } from "./type-utils";
|
|
2
1
|
import { MergeCode } from "./merge-low";
|
|
3
2
|
export type DetailConfig = {
|
|
4
3
|
[key: string]: MergeCode | DetailConfig;
|
|
@@ -15,8 +14,9 @@ export declare function detailMerge(target: {
|
|
|
15
14
|
[key: string]: any;
|
|
16
15
|
}, mergeCodes: DetailConfig): boolean;
|
|
17
16
|
export declare function immutableDetailMerge(target: any, source: any, mergeCodes: DetailConfig): any;
|
|
18
|
-
export declare function
|
|
19
|
-
export declare function customMerge<T extends
|
|
17
|
+
export declare function getDetailKeys(obj: any, mergeCodes: DetailConfig, excludeKeys?: string[]): string[];
|
|
18
|
+
export declare function customMerge<T extends object>(target: T, source: Partial<T>, mergeConf: MergeConfig | MergeCode, excludeKeys?: string[]): Partial<T> | false;
|
|
19
|
+
export declare function bypassMerge<T extends object>(target: T, source: object): Partial<T> | false;
|
|
20
20
|
export declare function immutableCustomMerge(target: any, source: any, mergeConf: MergeConfig, skipFill?: boolean): any;
|
|
21
21
|
export declare const fillUpdateCodes: (source: any, mergeConf: MergeConfig | MergeCode, blockUnset?: boolean, excludeKeys?: string[]) => DetailConfig;
|
|
22
22
|
//# sourceMappingURL=merge-conf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-conf.d.ts","sourceRoot":"","sources":["../../src/merge-conf.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,SAAS,EAAsC,MAAM,aAAa,CAAC;AAGxF,MAAM,MAAM,YAAY,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACvD,CAAC;AAUF,wBAAgB,WAAW,CACvB,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC9B,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC9B,UAAU,EAAE,YAAY,GACzB,OAAO,CAgCT;AAMD,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,YAAY,GACzB,GAAG,CAIL;AAKD,wBAAgB,aAAa,CACzB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,YAAY,EACxB,WAAW,CAAC,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAaV;AAQD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EACxC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,WAAW,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAuBpB;AAOD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EACxC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CASpB;AAMD,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,WAAW,EACtB,QAAQ,GAAE,OAAe,GAC1B,GAAG,CAOL;AAWD,eAAO,MAAM,eAAe,WAChB,GAAG,aACA,WAAW,GAAG,SAAS,eACtB,OAAO,gBACL,MAAM,EAAE,KACvB,YAoEF,CAAA"}
|
|
@@ -22,5 +22,5 @@ export declare function diffFromMerge(target: {
|
|
|
22
22
|
[key: string]: any;
|
|
23
23
|
}, source: {
|
|
24
24
|
[key: string]: any;
|
|
25
|
-
}, scalarCode: MergeCode, vectorCode?: MergeCode, nestedCode?: MergeCode): any | false;
|
|
25
|
+
}, scalarCode: MergeCode, vectorCode?: MergeCode, nestedCode?: MergeCode, orderInd?: boolean): any | false;
|
|
26
26
|
//# sourceMappingURL=merge-high.d.ts.map
|