export function asRecord(value: unknown): Record | null { if (typeof value !== "object" || value === null || Array.isArray(value)) return null; return value as Record; } export function safeJsonParse(text: string): unknown { try { return JSON.parse(text); } catch { return null; } } export function errorText(value: unknown): string { if (typeof value === "string") return value; const rec = asRecord(value); if (!rec) return ""; const msg = (typeof rec.message === "string" && rec.message) || (typeof rec.error === "string" && rec.error) || (typeof rec.code === "string" && rec.code) || ""; if (msg) return msg; try { return JSON.stringify(rec); } catch { return ""; } } export function asString(value: unknown, fallback = ""): string { return typeof value === "string" ? value : fallback; } export function asNumber(value: unknown, fallback = 0): number { return typeof value === "number" && Number.isFinite(value) ? value : fallback; } export function stringifyUnknown(value: unknown): string { if (typeof value === "string") return value; if (value === null || value === undefined) return ""; try { return JSON.stringify(value, null, 2); } catch { return String(value); } }