@takeshape/util 8.256.0 → 8.260.1
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/merge.d.ts +2 -0
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +30 -0
- package/es/merge.js +23 -1
- package/package.json +2 -2
package/dist/merge.d.ts
CHANGED
|
@@ -8,4 +8,6 @@ export declare function mergeWithArrayConcat<TObject, TSource>(object: TObject,
|
|
|
8
8
|
* object path. Array items set to `null` will be removed.
|
|
9
9
|
*/
|
|
10
10
|
export declare function mergeWithArrayMerge<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
|
|
11
|
+
export declare function rebaseObject<T extends Record<string, unknown>>(to: T, base: T, from: T): T;
|
|
12
|
+
export declare function rebaseArray(to: string[], base: string[], from: string[]): string[];
|
|
11
13
|
//# sourceMappingURL=merge.d.ts.map
|
package/dist/merge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/merge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/merge.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,qBAEtF;AAWD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,qBAErF;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAY1F;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAIlF"}
|
package/dist/merge.js
CHANGED
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.mergeWithArrayConcat = mergeWithArrayConcat;
|
|
7
7
|
exports.mergeWithArrayMerge = mergeWithArrayMerge;
|
|
8
|
+
exports.rebaseArray = rebaseArray;
|
|
9
|
+
exports.rebaseObject = rebaseObject;
|
|
8
10
|
|
|
9
11
|
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
10
12
|
|
|
@@ -14,6 +16,14 @@ var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
|
14
16
|
|
|
15
17
|
var _isNull = _interopRequireDefault(require("lodash/isNull"));
|
|
16
18
|
|
|
19
|
+
var _difference = _interopRequireDefault(require("lodash/difference"));
|
|
20
|
+
|
|
21
|
+
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
22
|
+
|
|
23
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
24
|
+
|
|
25
|
+
var _union = _interopRequireDefault(require("lodash/union"));
|
|
26
|
+
|
|
17
27
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
28
|
|
|
19
29
|
/**
|
|
@@ -51,4 +61,24 @@ const arrayMergeCustomizer = (value, srcValue) => {
|
|
|
51
61
|
|
|
52
62
|
function mergeWithArrayMerge(object, source) {
|
|
53
63
|
return (0, _mergeWith.default)(object, source, arrayMergeCustomizer);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function rebaseObject(to, base, from) {
|
|
67
|
+
const fromKeys = Object.keys(from);
|
|
68
|
+
const removedKeys = (0, _difference.default)(Object.keys(base), fromKeys);
|
|
69
|
+
const newObj = (0, _omit.default)(to, removedKeys);
|
|
70
|
+
|
|
71
|
+
for (const key of fromKeys) {
|
|
72
|
+
if (!(0, _isEqual.default)(base[key], from[key])) {
|
|
73
|
+
newObj[key] = from[key];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return newObj;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function rebaseArray(to, base, from) {
|
|
81
|
+
const removed = (0, _difference.default)(base, from);
|
|
82
|
+
const added = (0, _difference.default)(from, base);
|
|
83
|
+
return (0, _union.default)((0, _difference.default)(to, removed), added);
|
|
54
84
|
}
|
package/es/merge.js
CHANGED
|
@@ -2,10 +2,14 @@ import isArray from 'lodash/isArray';
|
|
|
2
2
|
import mergeWith from 'lodash/mergeWith';
|
|
3
3
|
import merge from 'lodash/merge';
|
|
4
4
|
import isNull from 'lodash/isNull';
|
|
5
|
-
|
|
5
|
+
import difference from 'lodash/difference';
|
|
6
|
+
import omit from 'lodash/omit';
|
|
7
|
+
import isEqual from 'lodash/isEqual';
|
|
8
|
+
import union from 'lodash/union';
|
|
6
9
|
/**
|
|
7
10
|
* Lodash `mergeWith` customizer to concat arrays
|
|
8
11
|
*/
|
|
12
|
+
|
|
9
13
|
const arrayConcatCustomizer = (value, srcValue) => {
|
|
10
14
|
if (isArray(value)) {
|
|
11
15
|
return value.concat(srcValue);
|
|
@@ -37,4 +41,22 @@ const arrayMergeCustomizer = (value, srcValue) => {
|
|
|
37
41
|
|
|
38
42
|
export function mergeWithArrayMerge(object, source) {
|
|
39
43
|
return mergeWith(object, source, arrayMergeCustomizer);
|
|
44
|
+
}
|
|
45
|
+
export function rebaseObject(to, base, from) {
|
|
46
|
+
const fromKeys = Object.keys(from);
|
|
47
|
+
const removedKeys = difference(Object.keys(base), fromKeys);
|
|
48
|
+
const newObj = omit(to, removedKeys);
|
|
49
|
+
|
|
50
|
+
for (const key of fromKeys) {
|
|
51
|
+
if (!isEqual(base[key], from[key])) {
|
|
52
|
+
newObj[key] = from[key];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return newObj;
|
|
57
|
+
}
|
|
58
|
+
export function rebaseArray(to, base, from) {
|
|
59
|
+
const removed = difference(base, from);
|
|
60
|
+
const added = difference(from, base);
|
|
61
|
+
return union(difference(to, removed), added);
|
|
40
62
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/util",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.260.1",
|
|
4
4
|
"description": "Shared utilities",
|
|
5
5
|
"homepage": "https://www.takeshape.io",
|
|
6
6
|
"repository": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"prismjs": "^1.25.0",
|
|
34
34
|
"shortid": "^2.2.16",
|
|
35
35
|
"url-parse": "^1.5.3",
|
|
36
|
-
"@takeshape/routing": "8.
|
|
36
|
+
"@takeshape/routing": "8.260.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/classnames": "^2.2.9",
|