msid
Version:
Minimal, monotonic, URL-safe, Client-first, reversible date-based IDs - just 7 chars for millisecond precision!
18 lines (16 loc) • 848 B
TypeScript
/** Default alphabet (0–9, A–Z, a–z) */
declare const DEFAULT_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
interface DateCodecOptions {
/** Custom epoch for offsets (default: UNIX_EPOCH) */
epoch?: Date;
/** Precision unit: milliseconds, seconds, or days */
resolution?: "ms" | "second" | "day";
/** Alphabet for base‑N encoding (default: DEFAULT_ALPHABET) */
alphabet?: string;
}
declare function msid(): string;
declare function msid(opts: DateCodecOptions): string;
declare function msid(date: Date, opts?: DateCodecOptions): string;
declare function msid(id: string, opts?: DateCodecOptions): Date;
declare function msid(input?: Date | string | DateCodecOptions, opts?: DateCodecOptions): string | Date;
export { DEFAULT_ALPHABET, type DateCodecOptions, msid as default, msid };