/** * Shared type guards used across ClinePass modules. * * @module clinepass-utils */ export function isRecord(value: unknown): value is Record { return typeof value === "object" && value !== null && !Array.isArray(value); } export function stringValue(value: unknown): string | undefined { return typeof value === "string" ? value : undefined; } export function numberValue(value: unknown): number | undefined { if (typeof value === "number" && Number.isFinite(value)) return value; if (typeof value === "string") { if (value.trim() === "") return undefined; const n = Number(value); return Number.isFinite(n) ? n : undefined; } return undefined; } export function booleanValue(value: unknown): boolean | undefined { return typeof value === "boolean" ? value : undefined; }