(
file: { type: string; name: string },
options?: { preserveOctetStream?: boolean }
)
| 320 | * browser-supplied content-type must match the presigned handshake exactly. |
| 321 | */ |
| 322 | export function resolveFileType( |
| 323 | file: { type: string; name: string }, |
| 324 | options?: { preserveOctetStream?: boolean } |
| 325 | ): string { |
| 326 | const browserType = file.type?.trim() |
| 327 | if (browserType) { |
| 328 | if (options?.preserveOctetStream || browserType !== 'application/octet-stream') { |
| 329 | return browserType |
| 330 | } |
| 331 | } |
| 332 | return getMimeTypeFromExtension(getFileExtension(file.name)) |
| 333 | } |
| 334 | |
| 335 | /** |
| 336 | * Upload `Content-Type` for direct PUT — preserves the browser's reported type |
no test coverage detected