初始版本提交
This commit is contained in:
38
src/utils/uuid.ts
Normal file
38
src/utils/uuid.ts
Normal file
@ -0,0 +1,38 @@
|
||||
import SnowflakeId from 'snowflake-id';
|
||||
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 buildSnowFlakeId(num = 0) {
|
||||
const snowflake = new SnowflakeId();
|
||||
const arr: any[] = [];
|
||||
for (let i = 0; i < num; i++) {
|
||||
arr.push(snowflake.generate());
|
||||
}
|
||||
return num ? arr : snowflake.generate();
|
||||
}
|
||||
Reference in New Issue
Block a user