Compare commits

...

1 Commits

Author SHA1 Message Date
Jarrod Flesch
1c42056960 fix(alpha): copy formData for re-use like we do for the json property 2024-04-05 16:13:50 -04:00
2 changed files with 7 additions and 3 deletions

View File

@@ -47,7 +47,7 @@ export const createPayloadRequest = async ({
const isGraphQL =
!config.graphQL.disable && pathname === `${config.routes.api}${config.routes.graphQL}`
const { data, file } = await getDataAndFile({
const { data, file, formData } = await getDataAndFile({
collection,
config,
request,
@@ -115,6 +115,7 @@ export const createPayloadRequest = async ({
const req: PayloadRequest = Object.assign(request, customRequest)
if (data) req.json = () => Promise.resolve(data)
if (formData) req.formData = () => Promise.resolve(formData)
req.payloadDataLoader = getDataLoader(req)
req.user = await getAuthenticatedUser({

View File

@@ -9,8 +9,10 @@ type GetDataAndFile = (args: {
}) => Promise<{
data: Record<string, any>
file: CustomPayloadRequest['file']
formData: FormData
}>
export const getDataAndFile: GetDataAndFile = async ({ collection, config, request }) => {
let formData: FormData = undefined
let data: Record<string, any> = undefined
let file: CustomPayloadRequest['file'] = undefined
@@ -24,7 +26,7 @@ export const getDataAndFile: GetDataAndFile = async ({ collection, config, reque
if (collection?.config?.upload) {
// load file in memory
if (!config.upload?.useTempFiles) {
const formData = await request.formData()
formData = await request.formData()
const formFile = formData.get('file')
if (formFile instanceof Blob) {
@@ -63,7 +65,7 @@ export const getDataAndFile: GetDataAndFile = async ({ collection, config, reque
}
} else {
// non upload request
const formData = await request.formData()
formData = await request.formData()
const payloadData = formData.get('_payload')
if (typeof payloadData === 'string') {
@@ -76,5 +78,6 @@ export const getDataAndFile: GetDataAndFile = async ({ collection, config, reque
return {
data,
file,
formData,
}
}