/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/schema/src/identifier.ts
30 строк
838 B
Kit Langton
refactor(schema): extract shared public schemas (#33571)
24 июн 2026, 05:31
Не верифицирован
24 июн 2026, 05:31
516cfe4
Код
Авторство
О чём код?
const length = 26 const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" let lastTimestamp = 0 let counter = 0 export function ascending() { return create(false) } export function descending() { return create(true) } export function create(descending: boolean, timestamp = Date.now()) { if (timestamp !== lastTimestamp) { lastTimestamp = timestamp counter = 0 } counter++ const current = BigInt(timestamp) * 0x1000n + BigInt(counter) const value = descending ? ~current : current const time = Array.from({ length: 6 }, (_, index) => Number((value >> BigInt(40 - 8 * index)) & 0xffn) .toString(16) .padStart(2, "0"), ).join("") const bytes = crypto.getRandomValues(new Uint8Array(length - 12)) return time + Array.from(bytes, (byte) => chars[byte % 62]).join("") }