training_data/packages/utils/src/index.ts

23 lines
758 B
TypeScript

/**
* 生成唯一ID
* @param prefix - 可选的ID前缀
* @returns 唯一ID字符串
*/
export function generateUniqueId(prefix?: string): string {
// 获取当前时间戳
const timestamp = Date.now();
// 生成随机数部分
const randomPart = Math.random().toString(36).substring(2, 8);
// 获取环境特定的额外随机性
const environmentPart = typeof window !== 'undefined'
? window.crypto.getRandomValues(new Uint32Array(1))[0].toString(36)
: require('crypto').randomBytes(4).toString('hex');
// 组合所有部分
const uniquePart = `${timestamp}${randomPart}${environmentPart}`;
// 如果提供了前缀,则添加前缀
return prefix ? `${prefix}_${uniquePart}` : uniquePart;
}