rdesign/frontend/node_modules/@lukeed/uuid/dist/index.mjs

25 lines
502 B
JavaScript

var IDX=256, HEX=[], BUFFER;
while (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);
export function v4() {
var i=0, num, out='';
if (!BUFFER || ((IDX + 16) > 256)) {
BUFFER = Array(i=256);
while (i--) BUFFER[i] = 256 * Math.random() | 0;
i = IDX = 0;
}
for (; i < 16; i++) {
num = BUFFER[IDX + i];
if (i==6) out += HEX[num & 15 | 64];
else if (i==8) out += HEX[num & 63 | 128];
else out += HEX[num];
if (i & 1 && i > 1 && i < 11) out += '-';
}
IDX++;
return out;
}