thread-master/apps/web/src/lib/memberUid.ts

21 lines
807 B
TypeScript
Raw Normal View History

2026-07-10 12:54:45 +00:00
/**
* Backend uid is int64 from 1_000_000 (78 numeric digits).
* Display always pad to 8 characters: 01000000, 01000001,
*/
export function formatMemberUid(uid: string | number | null | undefined): string {
if (uid === null || uid === undefined || uid === "") return "";
const n = typeof uid === "number" ? uid : Number(uid);
if (!Number.isFinite(n) || n < 0) return String(uid);
return String(Math.trunc(n)).padStart(8, "0");
}
/** Parse display or raw uid string back to API path/body form (no leading zeros required). */
export function parseMemberUid(raw: string): string {
const s = raw.trim();
if (!s) return "";
// keep as decimal string without leading zeros for JSON number path
const n = Number(s);
if (!Number.isFinite(n)) return s;
return String(Math.trunc(n));
}