@domql/utils 2.3.118 → 2.3.119
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/object.js +45 -41
- package/object.js +6 -2
- package/package.json +2 -2
package/dist/cjs/object.js
CHANGED
|
@@ -33,6 +33,7 @@ __export(object_exports, {
|
|
|
33
33
|
isEqualDeep: () => isEqualDeep,
|
|
34
34
|
map: () => map,
|
|
35
35
|
merge: () => merge,
|
|
36
|
+
mergeArrayExclude: () => mergeArrayExclude,
|
|
36
37
|
mergeIfExisted: () => mergeIfExisted,
|
|
37
38
|
overwrite: () => overwrite,
|
|
38
39
|
overwriteDeep: () => overwriteDeep,
|
|
@@ -55,30 +56,30 @@ const exec = (param, element, state, context) => {
|
|
|
55
56
|
return param;
|
|
56
57
|
};
|
|
57
58
|
const map = (obj, extention, element) => {
|
|
58
|
-
for (const
|
|
59
|
-
obj[
|
|
59
|
+
for (const e in extention) {
|
|
60
|
+
obj[e] = exec(extention[e], element);
|
|
60
61
|
}
|
|
61
62
|
};
|
|
62
63
|
const merge = (element, obj) => {
|
|
63
|
-
for (const
|
|
64
|
-
const elementProp = element[
|
|
65
|
-
const objProp = obj[
|
|
64
|
+
for (const e in obj) {
|
|
65
|
+
const elementProp = element[e];
|
|
66
|
+
const objProp = obj[e];
|
|
66
67
|
if (elementProp === void 0) {
|
|
67
|
-
element[
|
|
68
|
+
element[e] = objProp;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
return element;
|
|
71
72
|
};
|
|
72
73
|
const deepMerge = (element, extend, excludeFrom = []) => {
|
|
73
|
-
for (const
|
|
74
|
-
if (excludeFrom.includes(
|
|
74
|
+
for (const e in extend) {
|
|
75
|
+
if (excludeFrom.includes(e) || e.includes("__"))
|
|
75
76
|
continue;
|
|
76
|
-
const elementProp = element[
|
|
77
|
-
const extendProp = extend[
|
|
77
|
+
const elementProp = element[e];
|
|
78
|
+
const extendProp = extend[e];
|
|
78
79
|
if ((0, import_types.isObjectLike)(elementProp) && (0, import_types.isObjectLike)(extendProp)) {
|
|
79
80
|
deepMerge(elementProp, extendProp);
|
|
80
81
|
} else if (elementProp === void 0) {
|
|
81
|
-
element[
|
|
82
|
+
element[e] = extendProp;
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
return element;
|
|
@@ -86,7 +87,7 @@ const deepMerge = (element, extend, excludeFrom = []) => {
|
|
|
86
87
|
const clone = (obj, excludeFrom = []) => {
|
|
87
88
|
const o = {};
|
|
88
89
|
for (const prop in obj) {
|
|
89
|
-
if (excludeFrom.includes(
|
|
90
|
+
if (excludeFrom.includes(prop) || prop.includes("__"))
|
|
90
91
|
continue;
|
|
91
92
|
o[prop] = obj[prop];
|
|
92
93
|
}
|
|
@@ -113,6 +114,9 @@ const deepCloneExclude = (obj, excludeFrom = []) => {
|
|
|
113
114
|
}
|
|
114
115
|
return o;
|
|
115
116
|
};
|
|
117
|
+
const mergeArrayExclude = (arr, excl = []) => {
|
|
118
|
+
return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {});
|
|
119
|
+
};
|
|
116
120
|
const deepClone = (obj, excludeFrom = []) => {
|
|
117
121
|
const o = (0, import_types.isArray)(obj) ? [] : {};
|
|
118
122
|
for (const prop in obj) {
|
|
@@ -189,8 +193,8 @@ const deepDestringify = (obj, stringified = {}) => {
|
|
|
189
193
|
try {
|
|
190
194
|
const evalProp = import_globals.window.eval(`(${objProp})`);
|
|
191
195
|
stringified[prop] = evalProp;
|
|
192
|
-
} catch (
|
|
193
|
-
if (
|
|
196
|
+
} catch (e) {
|
|
197
|
+
if (e)
|
|
194
198
|
stringified[prop] = objProp;
|
|
195
199
|
}
|
|
196
200
|
} else {
|
|
@@ -204,8 +208,8 @@ const deepDestringify = (obj, stringified = {}) => {
|
|
|
204
208
|
try {
|
|
205
209
|
const evalProp = import_globals.window.eval(`(${arrProp})`);
|
|
206
210
|
stringified[prop].push(evalProp);
|
|
207
|
-
} catch (
|
|
208
|
-
if (
|
|
211
|
+
} catch (e) {
|
|
212
|
+
if (e)
|
|
209
213
|
stringified[prop].push(arrProp);
|
|
210
214
|
}
|
|
211
215
|
} else {
|
|
@@ -228,29 +232,29 @@ const deepDestringify = (obj, stringified = {}) => {
|
|
|
228
232
|
const overwrite = (element, params, excludeFrom = []) => {
|
|
229
233
|
const { ref } = element;
|
|
230
234
|
const changes = {};
|
|
231
|
-
for (const
|
|
232
|
-
if (excludeFrom.includes(
|
|
235
|
+
for (const e in params) {
|
|
236
|
+
if (excludeFrom.includes(e) || e.includes("__"))
|
|
233
237
|
continue;
|
|
234
|
-
const elementProp = element[
|
|
235
|
-
const paramsProp = params[
|
|
238
|
+
const elementProp = element[e];
|
|
239
|
+
const paramsProp = params[e];
|
|
236
240
|
if (paramsProp) {
|
|
237
|
-
ref.__cache[
|
|
238
|
-
ref[
|
|
241
|
+
ref.__cache[e] = changes[e] = elementProp;
|
|
242
|
+
ref[e] = paramsProp;
|
|
239
243
|
}
|
|
240
244
|
}
|
|
241
245
|
return changes;
|
|
242
246
|
};
|
|
243
247
|
const diffObjects = (original, objToDiff, cache) => {
|
|
244
|
-
for (const
|
|
245
|
-
if (
|
|
248
|
+
for (const e in objToDiff) {
|
|
249
|
+
if (e === "ref")
|
|
246
250
|
continue;
|
|
247
|
-
const originalProp = original[
|
|
248
|
-
const objToDiffProp = objToDiff[
|
|
251
|
+
const originalProp = original[e];
|
|
252
|
+
const objToDiffProp = objToDiff[e];
|
|
249
253
|
if ((0, import_types.isObject)(originalProp) && (0, import_types.isObject)(objToDiffProp)) {
|
|
250
|
-
cache[
|
|
251
|
-
diff(originalProp, objToDiffProp, cache[
|
|
254
|
+
cache[e] = {};
|
|
255
|
+
diff(originalProp, objToDiffProp, cache[e]);
|
|
252
256
|
} else if (objToDiffProp !== void 0) {
|
|
253
|
-
cache[
|
|
257
|
+
cache[e] = objToDiffProp;
|
|
254
258
|
}
|
|
255
259
|
}
|
|
256
260
|
return cache;
|
|
@@ -283,33 +287,33 @@ const diff = (original, objToDiff, cache = {}) => {
|
|
|
283
287
|
};
|
|
284
288
|
const overwriteObj = (params, obj) => {
|
|
285
289
|
const changes = {};
|
|
286
|
-
for (const
|
|
287
|
-
const objProp = obj[
|
|
288
|
-
const paramsProp = params[
|
|
290
|
+
for (const e in params) {
|
|
291
|
+
const objProp = obj[e];
|
|
292
|
+
const paramsProp = params[e];
|
|
289
293
|
if (paramsProp) {
|
|
290
|
-
obj[
|
|
294
|
+
obj[e] = changes[e] = objProp;
|
|
291
295
|
}
|
|
292
296
|
}
|
|
293
297
|
return changes;
|
|
294
298
|
};
|
|
295
299
|
const overwriteShallow = (obj, params, excludeFrom = []) => {
|
|
296
|
-
for (const
|
|
297
|
-
if (excludeFrom.includes(
|
|
300
|
+
for (const e in params) {
|
|
301
|
+
if (excludeFrom.includes(e) || e.includes("__"))
|
|
298
302
|
continue;
|
|
299
|
-
obj[
|
|
303
|
+
obj[e] = params[e];
|
|
300
304
|
}
|
|
301
305
|
return obj;
|
|
302
306
|
};
|
|
303
307
|
const overwriteDeep = (params, obj, excludeFrom = []) => {
|
|
304
|
-
for (const
|
|
305
|
-
if (excludeFrom.includes(
|
|
308
|
+
for (const e in params) {
|
|
309
|
+
if (excludeFrom.includes(e) || e.includes("__"))
|
|
306
310
|
continue;
|
|
307
|
-
const objProp = obj[
|
|
308
|
-
const paramsProp = params[
|
|
311
|
+
const objProp = obj[e];
|
|
312
|
+
const paramsProp = params[e];
|
|
309
313
|
if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
|
|
310
314
|
overwriteDeep(paramsProp, objProp);
|
|
311
315
|
} else if (paramsProp !== void 0) {
|
|
312
|
-
obj[
|
|
316
|
+
obj[e] = paramsProp;
|
|
313
317
|
}
|
|
314
318
|
}
|
|
315
319
|
return obj;
|
package/object.js
CHANGED
|
@@ -4,7 +4,6 @@ import { window } from '@domql/globals'
|
|
|
4
4
|
import { isFunction, isObjectLike, isObject, isArray, isString, is } from './types.js'
|
|
5
5
|
import { mergeArray } from './array.js'
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
export const exec = (param, element, state, context) => {
|
|
9
8
|
if (isFunction(param)) {
|
|
10
9
|
return param(
|
|
@@ -50,7 +49,7 @@ export const deepMerge = (element, extend, excludeFrom = []) => {
|
|
|
50
49
|
export const clone = (obj, excludeFrom = []) => {
|
|
51
50
|
const o = {}
|
|
52
51
|
for (const prop in obj) {
|
|
53
|
-
if (excludeFrom.includes(
|
|
52
|
+
if (excludeFrom.includes(prop) || prop.includes('__')) continue
|
|
54
53
|
o[prop] = obj[prop]
|
|
55
54
|
}
|
|
56
55
|
return o
|
|
@@ -82,6 +81,11 @@ export const deepCloneExclude = (obj, excludeFrom = []) => {
|
|
|
82
81
|
return o
|
|
83
82
|
}
|
|
84
83
|
|
|
84
|
+
// Merge array, but exclude keys listed in 'excl'
|
|
85
|
+
export const mergeArrayExclude = (arr, excl = []) => {
|
|
86
|
+
return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {})
|
|
87
|
+
}
|
|
88
|
+
|
|
85
89
|
/**
|
|
86
90
|
* Deep cloning of object
|
|
87
91
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/utils",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.119",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@domql/key": "latest",
|
|
24
24
|
"@domql/tags": "latest"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "b5b409c827c8b21896d84918f4fe9d133b057916",
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/core": "^7.12.0"
|
|
29
29
|
}
|