bifur
Version:
A library providing simple use of asynchronous functionality via Web Workers.
20 lines (19 loc) • 589 B
text/typescript
/**
* Generates a UUID.
* @returns {string} a uuid.
*/
export default function generateUUID() {
let d = new Date().getTime();
let d2 = (performance && performance.now && (performance.now() * 1000)) || 0;
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
let r = Math.random() * 16;
if (d > 0) {
r = (d + r) % 16 | 0;
d = Math.floor(d / 16);
} else {
r = (d2 + r) % 16 | 0;
d2 = Math.floor(d2 / 16);
}
return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
});
};