Open
Description
Bug Report
Describe the bug
The onQueuesEnd callback is expected to return a single file's information according to its assigned type, but instead, it returns an array of files. This results in a type mismatch when logging the results from onQueuesEnd, as the actual output is an array, not a single file.
Is this a regression?
No, this is the first time using next-cloudinary, so it's unclear if this behavior existed in previous versions.
Steps To Reproduce the error
- Add a console.log statement to log the output of onQueuesEnd.
- Observe the type declared for onQueuesEnd in the codebase.
- Compare the console output to the expected type declaration.
- Notice that onQueuesEnd returns an array of files, not a single file's information.
Expected behaviour
The onQueuesEnd callback should return a result in the format of results.info.files, consistent with the declared type (an array of files) instead of a single file.
Screenshot or Video Recording
Additional context
I am currently using Zod to validate the results returned from onQueuesEnd.
<CldUploadWidget
onQueuesEnd={(results) => {
if (results.info === undefined || typeof results.info === 'string') {
return;
}
const fileSchema = z.object({
uploadInfo: z.object({
width: z.number(),
height: z.number(),
asset_id: z.string(),
format: z.string(),
secure_url: z.string(),
original_filename: z.string(),
public_id: z.string(),
// declare more fields here if needed
}),
});
const onQueuesEndResultsSchema = z.object({
info: z.object({
files: z.array(fileSchema),
}),
});
const validationResult =
onQueuesEndResultsSchema.safeParse(results);
if (!validationResult.success) {
console.error('Invalid results structure', validationResult.error);
} else {
console.log('Valid results structure', validationResult.data);
}
}}
>
Metadata
Metadata
Assignees
Labels
No labels