Skip to content

Commit 7b2de66

Browse files
committed
feat: ObjectId generator
1 parent fd47c03 commit 7b2de66

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

src/utils.js

+31-28
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
}
1111
}(typeof self !== 'undefined' ? self : this, function (isBrowser) {
1212

13-
1413
/*globals DOMParser*/
1514
function clickedElement() {
1615
document.addEventListener('click', e => {
@@ -33,6 +32,9 @@
3332
}
3433
}
3534

35+
const ObjectId = (rnd = r16 => Math.floor(r16).toString(16)) =>
36+
rnd(Date.now()/1000) + ' '.repeat(16).replace(/./g, () => rnd(Math.random()*16));
37+
3638
function dotNotationToObject(data, obj = {}) {
3739
try {
3840
for (const [key, value] of Object.entries(data)) {
@@ -98,6 +100,31 @@
98100
}
99101
}
100102

103+
function domParser(str) {
104+
try {
105+
var mainTag = str.match(/\<(?<tag>[a-z0-9]+)(.*?)?\>/).groups.tag;
106+
} catch (e){
107+
// console.log(e, 'find position: can not find the main tag');
108+
}
109+
let doc;
110+
switch (mainTag) {
111+
case 'html':
112+
doc = new DOMParser().parseFromString(str, "text/html");
113+
return doc.documentElement;
114+
case 'body':
115+
doc = new DOMParser().parseFromString(str, "text/html");
116+
return doc.body;
117+
case 'head':
118+
doc = new DOMParser().parseFromString(str, "text/html");
119+
return doc.head;
120+
121+
default:
122+
let con = document.createElement('dom-parser');
123+
con.innerHTML = str;
124+
return con;
125+
}
126+
}
127+
101128
function parseTextToHtml(text) {
102129
let doc = new DOMParser().parseFromString(text, "text/html");
103130
if (doc.head.children[0]) return doc.head.children[0];
@@ -173,31 +200,6 @@
173200
return path;
174201
}
175202

176-
function domParser(str) {
177-
try {
178-
var mainTag = str.match(/\<(?<tag>[a-z0-9]+)(.*?)?\>/).groups.tag;
179-
} catch (e){
180-
// console.log(e, 'find position: can not find the main tag');
181-
}
182-
let doc;
183-
switch (mainTag) {
184-
case 'html':
185-
doc = new DOMParser().parseFromString(str, "text/html");
186-
return doc.documentElement;
187-
case 'body':
188-
doc = new DOMParser().parseFromString(str, "text/html");
189-
return doc.body;
190-
case 'head':
191-
doc = new DOMParser().parseFromString(str, "text/html");
192-
return doc.head;
193-
194-
default:
195-
let con = document.createElement('dom-parser');
196-
con.innerHTML = str;
197-
return con;
198-
}
199-
}
200-
201203
function queryDocumentSelectorAll(selector) {
202204
let elements = [];
203205

@@ -496,11 +498,12 @@
496498
clickedElement();
497499

498500
return {
499-
parseTextToHtml,
501+
ObjectId,
500502
dotNotationToObject,
501503
getValueFromObject,
502-
cssPath,
503504
domParser,
505+
parseTextToHtml,
506+
cssPath,
504507
queryDocumentSelector,
505508
queryDocumentSelectorAll,
506509
queryData,

0 commit comments

Comments
 (0)