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

21 lines
807 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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));
}