uuid.ts
1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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);
}
export function getlowerCaseChars() {
return Array.from({ length: 26 }).map((_, index) => String.fromCharCode(index + 97));
}
export function getUpperCaseChars() {
return Array.from({ length: 26 }).map((_, index) => String.fromCharCode(index + 65));
}
export function randomString(length = 20) {
const upperCaseChars = getUpperCaseChars();
const lowerCaseChars = getlowerCaseChars();
const numberChars = Array.from({ length: 10 }).map((_, index) => index);
const allChars = [...numberChars, ...upperCaseChars, ...lowerCaseChars].sort(
() => 0.5 - Math.random()
);
const rangeFn = () => (Math.random() * 63) | 0;
return Array.from({ length })
.map(() => allChars[rangeFn()])
.join('');
}