( workspaceId: string, file: File, folderId?: string | null, signal?: AbortSignal )
| 299 | } |
| 300 | |
| 301 | async function uploadViaApiFallback( |
| 302 | workspaceId: string, |
| 303 | file: File, |
| 304 | folderId?: string | null, |
| 305 | signal?: AbortSignal |
| 306 | ): Promise<UploadFileResponse> { |
| 307 | const formData = new FormData() |
| 308 | formData.append('file', file) |
| 309 | if (folderId) formData.append('folderId', folderId) |
| 310 | |
| 311 | // boundary-raw-fetch: multipart/form-data fallback upload, requestJson only supports JSON bodies |
| 312 | const response = await fetch(`/api/workspaces/${workspaceId}/files`, { |
| 313 | method: 'POST', |
| 314 | body: formData, |
| 315 | signal, |
| 316 | }) |
| 317 | |
| 318 | return parseUploadResponse(response, 'Upload failed') |
| 319 | } |
| 320 | |
| 321 | async function parseUploadResponse( |
| 322 | response: Response, |
no test coverage detected