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

View File

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