UNPKG

@storm-stack/unique-identifier

Version:

This package provides a simple way to generate various types of unique identifiers.

34 lines (33 loc) 661 B
let index = 256; const hex = []; let buffer; while (index--) { hex[index] = (index + 256).toString(16).slice(1); } export function uuid() { let i = 0; let num; let out = ""; if (!buffer || index + 16 > 256) { buffer = Array.from({ length: i = 256 }); while (i--) { buffer[i] = Math.trunc(256 * Math.random()); } i = index = 0; } for (; i < 16; i++) { num = buffer[index + 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 += "-"; } } index++; return out; }