export function toComparable(v: unknown) { if (typeof v === "number") { return v; } else if (typeof v === "string") { return v; } else { return String(v); } } export function compareRecords( sorts: Record, a: Record, b: Record, ) { for (const [name, direction] of Object.entries(sorts)) { const v1 = toComparable(a[name]); const v2 = toComparable(b[name]); const rev = direction === "DESC" ? -1 : 1; if (v1 === v2) { continue; } return (v1 > v2 ? 1 : -1) * rev; } return 0; }