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.
28 lines
697 B
28 lines
697 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) |
|
}
|
|
|