Files
payload/packages/plugin-cloud-storage/src/utilities/getFilePrefix.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

33 lines
773 B
TypeScript

import type { CollectionConfig, PayloadRequest, UploadConfig } from 'payload'
export async function getFilePrefix({
collection,
filename,
req,
}: {
collection: CollectionConfig
filename: string
req: PayloadRequest
}): Promise<string> {
const imageSizes = (collection?.upload as UploadConfig)?.imageSizes || []
const files = await req.payload.find({
collection: collection.slug,
depth: 0,
limit: 1,
pagination: false,
where: {
or: [
{
filename: { equals: filename },
},
...imageSizes.map((imageSize) => ({
[`sizes.${imageSize.name}.filename`]: { equals: filename },
})),
],
},
})
const prefix = files?.docs?.[0]?.prefix
return prefix ? (prefix as string) : ''
}