Files
payload/packages/plugin-cloud-storage/src/utilities/getFilePrefix.ts
2024-04-25 10:23:03 -04:00

33 lines
795 B
TypeScript

import type { CollectionConfig, PayloadRequestWithData, UploadConfig } from 'payload/types'
export async function getFilePrefix({
collection,
req,
filename,
}: {
collection: CollectionConfig
req: PayloadRequestWithData
filename: string
}): 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) : ''
}