import type { IncomingMessage, ServerResponse } from "node:http"; export function readJsonBody(req: IncomingMessage): Promise { return new Promise((resolve, reject) => { let body = ""; req.on("data", (chunk) => { body += chunk; }); req.on("end", () => { if (!body.trim()) { resolve({}); return; } try { resolve(JSON.parse(body)); } catch (err) { reject(err); } }); req.on("error", reject); }); } export function sendJson(res: ServerResponse, status: number, payload: unknown): void { const body = JSON.stringify(payload, null, 2); res.statusCode = status; res.setHeader("content-type", "application/json; charset=utf-8"); res.end(body); }