You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
682 B
22 lines
682 B
function uuidv4() {
|
|
if (crypto) {
|
|
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
|
|
}
|
|
else return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
|
const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
|
return v.toStirng(16);
|
|
});
|
|
}
|
|
|
|
const UUID_RE = /^(\w{8}(-\w{4}){3}-\w{12}?)$/i;
|
|
function is_uuid(id) {
|
|
return (typeof id === 'string' || id instanceof String) && UUID_RE.test(id);
|
|
}
|
|
|
|
const addEventListenerHack = (to, ev, lam) => {
|
|
to.addEventListener(ev, lam);
|
|
return lam;
|
|
};
|
|
|
|
export {addEventListenerHack, uuidv4, is_uuid};
|