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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
|
|
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)}`
|
|
|
|
}
|