@geektech/backone-utils
ID 生成
uuidv4 / uuidv7 / nanoid / snowflake 四种 ID 策略。
id 模块提供四种 ID 生成策略,遵循策略模式:通过 createIdGenerator 工厂按名称创建,便于配置驱动;默认 uuidv7(时间有序,适合做数据库主键)。
快捷生成
ts
import { createId } from '@geektech/backone-utils';
const id = createId(); // uuidv7(默认)
const id2 = createId('nanoid', { length: 12 });按策略创建生成器
ts
const ids = createIdGenerator("snowflake", { machineId: 1 });
const id = ids.generate();策略一览
| 策略 | 生成器 | 说明 |
|---|---|---|
uuidv4 | UuidV4Generator | 随机 UUID v4 |
uuidv7 | UuidV7Generator | 时间有序 UUID v7(默认) |
nanoid | NanoIdGenerator | URL 安全短 ID,可配长度与字符表 |
snowflake | SnowflakeGenerator | 雪花 ID,可配纪元与机器 ID |
NanoId 选项
| 选项 | 默认 | 说明 |
|---|---|---|
alphabet | URL 安全字母数字 64 字符 | 字符表 |
length | 21 | 生成长度(碰撞概率约 2^-126) |
Snowflake 选项
| 选项 | 默认 | 说明 |
|---|---|---|
epoch | 2024-01-01T00:00:00.000Z | 纪元毫秒时间戳 |
machineId | 随机分配 | 机器 / 进程 ID(0-1023) |