import type express from "express"; export function jsonError( res: express.Response, status: number, message: string, ) { res.status(status).json({ error: message }); } export function toStringOrEmpty(value: unknown) { return typeof value === "string" ? value.trim() : String(value ?? "").trim(); } export function toNumber(value: unknown) { if (typeof value === "number" && Number.isFinite(value)) return value; if (typeof value === "string" && value.trim()) { const parsed = Number(value); return Number.isFinite(parsed) ? parsed : undefined; } return undefined; } export function toBoolean(value: unknown) { if (typeof value === "boolean") return value; if (typeof value === "string") { const v = value.trim().toLowerCase(); if (v === "true" || v === "1" || v === "yes") return true; if (v === "false" || v === "0" || v === "no") return false; } return undefined; } export function toStringArray(value: unknown): string[] | undefined { if (!Array.isArray(value)) return undefined; const strings = value.map((v) => toStringOrEmpty(v)).filter(Boolean); return strings.length ? strings : undefined; }