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.
26 lines
673 B
26 lines
673 B
const hexList: string[] = [] |
|
for (let i = 0; i <= 15; i++) |
|
hexList[i] = i.toString(16) |
|
|
|
export function buildUUID(): string { |
|
let uuid = '' |
|
for (let i = 1; i <= 36; i++) { |
|
if (i === 9 || i === 14 || i === 19 || i === 24) |
|
uuid += '-' |
|
else if (i === 15) |
|
uuid += 4 |
|
else if (i === 20) |
|
uuid += hexList[(Math.random() * 4) | 8] |
|
else |
|
uuid += hexList[(Math.random() * 16) | 0] |
|
} |
|
return uuid.replace(/-/g, '') |
|
} |
|
|
|
let unique = 0 |
|
export function buildShortUUID(prefix = ''): string { |
|
const time = Date.now() |
|
const random = Math.floor(Math.random() * 1000000000) |
|
unique++ |
|
return `${prefix}_${random}${unique}${String(time)}` |
|
}
|
|
|