import type { IncomingMessage } from 'node:http'; export async function readRequestBody(request: IncomingMessage): Promise { const chunks: Buffer[] = []; let size = 0; for await (const chunk of request) { const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); size += buffer.length; if (size > 1_048_576) { request.destroy(); throw new Error('Request body exceeds 1MB'); } chunks.push(buffer); } return Buffer.concat(chunks).toString('utf8'); }