@cocreate/utils 1.37.1 → 1.37.3

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.37.3](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.37.2...v1.37.3) (2024-12-22)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * handling updates for arrays using dotnotation ([e227054](https://github.com/CoCreate-app/CoCreate-utils/commit/e2270546f349a1a86f2d858e6e779c98b5cc9a7f))
7
+
8
+ ## [1.37.2](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.37.1...v1.37.2) (2024-12-14)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * $delete, $unset, $slice use splice to modify array ([ecb5859](https://github.com/CoCreate-app/CoCreate-utils/commit/ecb58596eae5f7c7884e39ec534dfa62a8db81ac))
14
+
1
15
  ## [1.37.1](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.37.0...v1.37.1) (2024-12-14)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/utils",
3
- "version": "1.37.1",
3
+ "version": "1.37.3",
4
4
  "description": "A simple utils component in vanilla javascript. Easily configured using HTML5 attributes and/or JavaScript API.",
5
5
  "keywords": [
6
6
  "utils",
package/src/index.js CHANGED
@@ -290,14 +290,17 @@
290
290
  for (const key of Object.keys(data)) {
291
291
  let newObject = object;
292
292
  let oldObject = new Object(newObject);
293
- let keys = key.replace(/\[(\d+)\]/g, ".$1").split(".");
293
+ let keys = key
294
+ .replace(/\[(\d+)\]/g, ".$1")
295
+ .split(".")
296
+ .map((k) => (isNaN(k) ? k : Number(k)));
294
297
  let value = data[key];
295
298
  let operator;
296
299
  if (keys[0].startsWith("$")) operator = keys.shift();
297
300
 
298
301
  let length = keys.length - 1;
299
302
  for (let i = 0; i < keys.length; i++) {
300
- if (/^\d+$/.test(keys[i])) keys[i] = parseInt(keys[i]);
303
+ // if (/^\d+$/.test(keys[i])) keys[i] = parseInt(keys[i]);
301
304
 
302
305
  if (length == i) {
303
306
  if (operator) {
@@ -411,12 +414,22 @@
411
414
  if (typeof keys[i] === "number")
412
415
  newObject.splice(keys[i], 1);
413
416
  else delete newObject[keys[i]];
414
- } else newObject[keys[i]] = value;
417
+ } else if (typeof keys[i] === "number") {
418
+ newObject.splice(keys[i], 0, value);
419
+ } else {
420
+ newObject[keys[i]] = value;
421
+ }
422
+ } else if (
423
+ typeof keys[i + 1] === "number" &&
424
+ !Array.isArray(newObject[keys[i]])
425
+ ) {
426
+ newObject[keys[i]] = [];
415
427
  } else {
416
- newObject[keys[i]] = oldObject[keys[i]] || {};
417
- newObject = newObject[keys[i]];
418
- oldObject = oldObject[keys[i]];
428
+ newObject[keys[i]] = newObject[keys[i]] || {};
429
+ // newObject[keys[i]] = oldObject[keys[i]] || {};
430
+ // oldObject = oldObject[keys[i]];
419
431
  }
432
+ newObject = newObject[keys[i]];
420
433
  }
421
434
  }
422
435
  return object;