( req: http.IncomingMessage, maxBodyBytes: number, )
| 228 | } |
| 229 | |
| 230 | async function readRestJsonBody( |
| 231 | req: http.IncomingMessage, |
| 232 | maxBodyBytes: number, |
| 233 | ): Promise<Record<string, unknown>> { |
| 234 | const raw = ( |
| 235 | await readNodeHttpRequestBody(req, maxBodyBytes, 'Request body is too large.') |
| 236 | ).toString('utf8'); |
| 237 | try { |
| 238 | const parsed = JSON.parse(raw) as unknown; |
| 239 | if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) { |
| 240 | throw new Error('expected object'); |
| 241 | } |
| 242 | return parsed as Record<string, unknown>; |
| 243 | } catch (error) { |
| 244 | throw new AppError('INVALID_ARGS', 'Invalid JSON request body', {}, error); |
| 245 | } |
| 246 | } |
| 247 | |
| 248 | function readUploadPreflightBody(record: Record<string, unknown>): UploadPreflightBody { |
| 249 | return { |
no test coverage detected
searching dependent graphs…