本地草稿 ID(nanoid)
灵感:能力工具箱 nanoid-id(pkg: nanoid)。
何时使用
- 离线/本地创建草稿、临时跟进单、附件占位,需要短且 URL 安全的 ID。
- 不想用 UUID 的冗长形式。
硬约束
- 仅本地生成:不请求后端发号;说明碰撞概率与长度关系。
- 默认:
nanoid()或自定义字母表;CRM 草稿建议 12~16 位。 - 前缀:业务可读时可加前缀如
dft_,但总长仍宜短。 - 勿当密码:nanoid 不是密钥;敏感场景用加密随机并走服务端。
- 与 Sqids 区分:Sqids 混淆数字 ID;nanoid 生成随机字符串 ID。
推荐实现要点
import { nanoid, customAlphabet } from 'nanoid'
const draftId = customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', 14)
export function newDraftId(prefix = 'dft') {
return `${prefix}_${draftId()}`
}
Agent 执行步骤
- 接入 nanoid;统一草稿 ID 工厂函数。
- 自测:连续生成 100 个无重复(演示级)。
- 文档写明:正式单据号仍以服务端为准。
附加
- 说明见 README.md
- 排错见 reference.md
- 模板见 templates/usage.md