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

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};