const CHARSET = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('') export function createRandomId(length = 32, prefixWithU = true, radix = null) { const base = radix || CHARSET.length const chars = [] if (length) { for (let i = 0; i < length; i++) { chars.push(CHARSET[Math.floor(Math.random() * base)]) } } else { chars[8] = chars[13] = chars[18] = chars[23] = '-' chars[14] = '4' for (let i = 0; i < 36; i++) { if (!chars[i]) { const r = Math.floor(Math.random() * 16) chars[i] = CHARSET[i === 19 ? (r & 0x3) | 0x8 : r] } } } const joined = prefixWithU && length ? 'u' + chars.join('') : chars.join('') return joined }