Files
payload/packages/plugin-cloud-storage/src/utilities/getIncomingFiles.ts
Jarrod Flesch 0711f880ff chore!: simplify api handler (#6910)
Removes PayloadRequestWithData in favour of just PayloadRequest with
optional types for `data` and `locale`

`addDataAndFileToRequest` and `addLocalesToRequestFromData` now takes in
a single argument instead of an object

```ts
// before
await addDataAndFileToRequest({ request: req })
addLocalesToRequestFromData({ request: req })

// current
await addDataAndFileToRequest(req)
addLocalesToRequestFromData(req)
```

---------

Co-authored-by: Paul Popus <paul@nouance.io>
2024-07-02 09:47:03 -04:00

45 lines
1009 B
TypeScript

import type { FileData, PayloadRequest } from 'payload'
import type { File } from '../types.js'
export function getIncomingFiles({
data,
req,
}: {
data: Partial<FileData>
req: PayloadRequest
}): File[] {
const file = req.file
let files: File[] = []
if (file && data.filename && data.mimeType) {
const mainFile: File = {
buffer: file.data,
filename: data.filename,
filesize: file.size,
mimeType: data.mimeType,
tempFilePath: file.tempFilePath,
}
files = [mainFile]
if (data?.sizes) {
Object.entries(data.sizes).forEach(([key, resizedFileData]) => {
if (req.payloadUploadSizes?.[key] && data.mimeType) {
files = files.concat([
{
buffer: req.payloadUploadSizes[key],
filename: `${resizedFileData.filename}`,
filesize: req.payloadUploadSizes[key].length,
mimeType: data.mimeType,
},
])
}
})
}
}
return files
}