(
request: ReadFormDataWithLimitRequest,
options: { maxBytes: number; label: string }
)
| 65 | } |
| 66 | |
| 67 | export async function readFormDataWithLimit( |
| 68 | request: ReadFormDataWithLimitRequest, |
| 69 | options: { maxBytes: number; label: string } |
| 70 | ): Promise<FormData> { |
| 71 | assertContentLengthWithinLimit(request.headers, options.maxBytes, options.label) |
| 72 | |
| 73 | if (request.headers?.get('content-length') || !request.body) { |
| 74 | return request.formData() |
| 75 | } |
| 76 | |
| 77 | const body = await readStreamToBufferWithLimit(request.body, options) |
| 78 | const boundedRequest = new Request(request.url, { |
| 79 | method: request.method, |
| 80 | headers: request.headers, |
| 81 | body: new Uint8Array(body), |
| 82 | }) |
| 83 | return boundedRequest.formData() |
| 84 | } |
| 85 | |
| 86 | export interface ReadStreamWithLimitOptions { |
| 87 | maxBytes: number |
no test coverage detected