export type ApiFailure = { success: false; reason: string; }; export type ApiSuccess> = { success: true; reason: string; } & T; export type ApiResult> = ApiSuccess | ApiFailure; export function jsonSuccess>( reason: string, payload: T, status = 200, ): Response { return Response.json({ success: true, reason, ...payload }, { status }); } export function jsonFailure(reason: string, status = 400): Response { return Response.json({ success: false, reason }, { status }); } export async function readJsonBody(request: Request): Promise { try { return await request.json(); } catch { return null; } }