| 775 | * Converts raw file objects to UserFile format, accepting single or array input |
| 776 | */ |
| 777 | export function processFilesToUserFiles( |
| 778 | files: RawFileInput | RawFileInput[], |
| 779 | requestId: string, |
| 780 | logger: Logger |
| 781 | ): UserFile[] { |
| 782 | const filesArray = Array.isArray(files) ? files : [files] |
| 783 | const userFiles: UserFile[] = [] |
| 784 | |
| 785 | for (const file of filesArray) { |
| 786 | if (Array.isArray(file)) { |
| 787 | logger.warn(`[${requestId}] Skipping nested array in file input`) |
| 788 | continue |
| 789 | } |
| 790 | |
| 791 | const userFile = convertToUserFile(file, requestId, logger) |
| 792 | if (userFile) { |
| 793 | userFiles.push(userFile) |
| 794 | } else { |
| 795 | logger.warn(`[${requestId}] Skipping file without storage key: ${file.name || 'unknown'}`) |
| 796 | } |
| 797 | } |
| 798 | |
| 799 | return userFiles |
| 800 | } |
| 801 | |
| 802 | /** |
| 803 | * Sanitize a filename for use in storage metadata headers |