@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/utils",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
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
@@ -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,