@domql/utils 2.3.118 → 2.3.120

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.
@@ -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 e2 in extention) {
59
- obj[e2] = exec(extention[e2], element);
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 e2 in obj) {
64
- const elementProp = element[e2];
65
- const objProp = obj[e2];
64
+ for (const e in obj) {
65
+ const elementProp = element[e];
66
+ const objProp = obj[e];
66
67
  if (elementProp === void 0) {
67
- element[e2] = objProp;
68
+ element[e] = objProp;
68
69
  }
69
70
  }
70
71
  return element;
71
72
  };
72
73
  const deepMerge = (element, extend, excludeFrom = []) => {
73
- for (const e2 in extend) {
74
- if (excludeFrom.includes(e2) || e2.includes("__"))
74
+ for (const e in extend) {
75
+ if (excludeFrom.includes(e) || e.includes("__"))
75
76
  continue;
76
- const elementProp = element[e2];
77
- const extendProp = extend[e2];
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[e2] = extendProp;
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(e) || e.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 (e2) {
193
- if (e2)
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 (e2) {
208
- if (e2)
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 e2 in params) {
232
- if (excludeFrom.includes(e2) || e2.includes("__"))
235
+ for (const e in params) {
236
+ if (excludeFrom.includes(e) || e.includes("__"))
233
237
  continue;
234
- const elementProp = element[e2];
235
- const paramsProp = params[e2];
238
+ const elementProp = element[e];
239
+ const paramsProp = params[e];
236
240
  if (paramsProp) {
237
- ref.__cache[e2] = changes[e2] = elementProp;
238
- ref[e2] = paramsProp;
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 e2 in objToDiff) {
245
- if (e2 === "ref")
248
+ for (const e in objToDiff) {
249
+ if (e === "ref")
246
250
  continue;
247
- const originalProp = original[e2];
248
- const objToDiffProp = objToDiff[e2];
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[e2] = {};
251
- diff(originalProp, objToDiffProp, cache[e2]);
254
+ cache[e] = {};
255
+ diff(originalProp, objToDiffProp, cache[e]);
252
256
  } else if (objToDiffProp !== void 0) {
253
- cache[e2] = objToDiffProp;
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 e2 in params) {
287
- const objProp = obj[e2];
288
- const paramsProp = params[e2];
290
+ for (const e in params) {
291
+ const objProp = obj[e];
292
+ const paramsProp = params[e];
289
293
  if (paramsProp) {
290
- obj[e2] = changes[e2] = objProp;
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 e2 in params) {
297
- if (excludeFrom.includes(e2) || e2.includes("__"))
300
+ for (const e in params) {
301
+ if (excludeFrom.includes(e) || e.includes("__"))
298
302
  continue;
299
- obj[e2] = params[e2];
303
+ obj[e] = params[e];
300
304
  }
301
305
  return obj;
302
306
  };
303
- const overwriteDeep = (params, obj, excludeFrom = []) => {
304
- for (const e2 in params) {
305
- if (excludeFrom.includes(e2) || e2.includes("__"))
307
+ const overwriteDeep = (obj, params, excludeFrom = []) => {
308
+ for (const e in params) {
309
+ if (excludeFrom.includes(e) || e.includes("__"))
306
310
  continue;
307
- const objProp = obj[e2];
308
- const paramsProp = params[e2];
311
+ const objProp = obj[e];
312
+ const paramsProp = params[e];
309
313
  if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
310
- overwriteDeep(paramsProp, objProp);
314
+ overwriteDeep(objProp, paramsProp);
311
315
  } else if (paramsProp !== void 0) {
312
- obj[e2] = paramsProp;
316
+ obj[e] = paramsProp;
313
317
  }
314
318
  }
315
319
  return obj;
@@ -320,7 +324,7 @@ const mergeIfExisted = (a, b) => {
320
324
  return a || b;
321
325
  };
322
326
  const flattenRecursive = (param, prop, stack = []) => {
323
- const objectized = mergeAndCloneIfArray(param);
327
+ const objectized = (0, import_array.mergeAndCloneIfArray)(param);
324
328
  stack.push(objectized);
325
329
  const extendOfExtend = objectized[prop];
326
330
  if (extendOfExtend)
package/object.js CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  import { window } from '@domql/globals'
4
4
  import { isFunction, isObjectLike, isObject, isArray, isString, is } from './types.js'
5
- import { mergeArray } from './array.js'
6
-
5
+ import { mergeAndCloneIfArray, mergeArray } from './array.js'
7
6
 
8
7
  export const exec = (param, element, state, context) => {
9
8
  if (isFunction(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(e) || e.includes('__')) continue
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
  */
@@ -297,13 +301,13 @@ export const overwriteShallow = (obj, params, excludeFrom = []) => {
297
301
  /**
298
302
  * Overwrites DEEPLY object properties with another
299
303
  */
300
- export const overwriteDeep = (params, obj, excludeFrom = []) => {
304
+ export const overwriteDeep = (obj, params, excludeFrom = []) => {
301
305
  for (const e in params) {
302
306
  if (excludeFrom.includes(e) || e.includes('__')) continue
303
307
  const objProp = obj[e]
304
308
  const paramsProp = params[e]
305
309
  if (isObjectLike(objProp) && isObjectLike(paramsProp)) {
306
- overwriteDeep(paramsProp, objProp)
310
+ overwriteDeep(objProp, paramsProp)
307
311
  } else if (paramsProp !== undefined) {
308
312
  obj[e] = paramsProp
309
313
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/utils",
3
- "version": "2.3.118",
3
+ "version": "2.3.120",
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": "51d72040aa837fc2b93e7699277750797af276f1",
26
+ "gitHead": "6e932a813b8e6ee0a57a40ebc6dc757cc44e6427",
27
27
  "devDependencies": {
28
28
  "@babel/core": "^7.12.0"
29
29
  }