( req: IncomingMessage, maxBodyBytes: number, tooLargeMessage: string, )
| 14 | } |
| 15 | |
| 16 | export async function readNodeHttpRequestBody( |
| 17 | req: IncomingMessage, |
| 18 | maxBodyBytes: number, |
| 19 | tooLargeMessage: string, |
| 20 | ): Promise<Buffer> { |
| 21 | const chunks: Buffer[] = []; |
| 22 | let bodyBytes = 0; |
| 23 | for await (const chunk of req) { |
| 24 | const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); |
| 25 | bodyBytes += buffer.length; |
| 26 | if (bodyBytes > maxBodyBytes) { |
| 27 | throw new AppError('INVALID_ARGS', tooLargeMessage); |
| 28 | } |
| 29 | chunks.push(buffer); |
| 30 | } |
| 31 | return Buffer.concat(chunks); |
| 32 | } |
no test coverage detected