@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 +14 -0
- package/package.json +1 -1
- package/src/index.js +19 -6
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
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
|
|
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
|
|
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]] =
|
|
417
|
-
newObject =
|
|
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;
|