import { NextResponse } from "next/server"; export function jsonOk(payload: T, init?: ResponseInit) { return NextResponse.json(payload, init); } export function jsonError(error: unknown, status = 400) { const resolvedStatus = statusFromError(error) || status; return NextResponse.json({ error: error instanceof Error ? error.message : String(error) }, { status: resolvedStatus }); } export async function readJsonBody>(request: Request): Promise { try { return await request.json() as T; } catch { return {} as T; } } function statusFromError(error: unknown): number | undefined { if (typeof error !== "object" || error === null || !("status" in error)) return undefined; const status = Number((error as { status?: unknown }).status); return Number.isInteger(status) && status >= 400 && status <= 599 ? status : undefined; }