Something went wrong. Try again.
opencode v2 mirror
Something went wrong. Try again.
TypeScript
12345678910111213141516171819202122232425262728293031const length = 26const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"let lastTimestamp = 0let 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("")}