@cocreate/utils 1.9.1 → 1.10.0
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 +7 -0
- package/package.json +1 -1
- package/src/index.js +41 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.10.0](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.9.1...v1.10.0) (2022-08-23)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* dotNotationToObject to convert a dot notation string to a nested object structure ([b924d33](https://github.com/CoCreate-app/CoCreate-utils/commit/b924d333ccf364d6ac1f736e8cbfe2d8999316cb))
|
|
7
|
+
|
|
1
8
|
## [1.9.1](https://github.com/CoCreate-app/CoCreate-utils/compare/v1.9.0...v1.9.1) (2022-07-29)
|
|
2
9
|
|
|
3
10
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -20,6 +20,46 @@ function clickedElement() {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
export function dotNotationToObject(data) {
|
|
24
|
+
try {
|
|
25
|
+
let obj = {};
|
|
26
|
+
|
|
27
|
+
for (const [key, value] of Object.entries(data)) {
|
|
28
|
+
let newObject = obj
|
|
29
|
+
let keys = key.split('.');
|
|
30
|
+
let length = keys.length - 1
|
|
31
|
+
for (let i = 0; i < keys.length; i++) {
|
|
32
|
+
if (/\[([0-9]*)\]/g.test(keys[i])){
|
|
33
|
+
let [k, index] = keys[i].split('[');
|
|
34
|
+
index = index.slice(0, -1)
|
|
35
|
+
console.log(index, k)
|
|
36
|
+
if (length == i){
|
|
37
|
+
newObject[k] = [];
|
|
38
|
+
newObject[k][index] = value;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
newObject[k] = [];
|
|
42
|
+
newObject[k][index] = {};
|
|
43
|
+
}
|
|
44
|
+
newObject = newObject[k][index]
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (length == i)
|
|
48
|
+
newObject[keys[i]] = value;
|
|
49
|
+
else
|
|
50
|
+
newObject[keys[i]] = {};
|
|
51
|
+
newObject = newObject[keys[i]]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
console.log(obj);
|
|
56
|
+
return obj
|
|
57
|
+
} catch (error) {
|
|
58
|
+
console.log("Error converting dot notation to object", error);
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
23
63
|
export function parseTextToHtml(text) {
|
|
24
64
|
let doc = new DOMParser().parseFromString(text, "text/html");
|
|
25
65
|
if (doc.head.children[0]) return doc.head.children[0];
|
|
@@ -219,6 +259,7 @@ clickedElement();
|
|
|
219
259
|
|
|
220
260
|
export default {
|
|
221
261
|
parseTextToHtml,
|
|
262
|
+
dotNotationToObject,
|
|
222
263
|
cssPath,
|
|
223
264
|
domParser,
|
|
224
265
|
queryDocumentSelector,
|