@xpresser/file-uploader
v2.1.1
Published
File uploader for XpresserJs framework
Downloads
14
Readme
Xpresser File Uploader Plugin
Built on busboy, an easy plugin to handle file uploads from form request to your application storage folder.
Documentation: xpresserjs.com
Next
NPM: npm i @xpresser/file-uploader
YARN: yarn i @xpresser/file-uploader
This package has been converted to TypeScript.
New Features
While converting to TypeScript, we decided to chip in a few Features.
files.errorMessages()
This function returns an array of error messages when handling multiple files upload.
const photos = http.files("photos", {
size: 0.0001 // intentional to make error.
})
if(photos.hasFilesWithErrors()){
return photos.errorMessages() // [ 'File size is too large.']
}
Custom Error
The example below shows how the default error messages are defined.
Note: This applies to both single
and multi-file
uploads
import { Http } from "xpresser/types/http";
export function upload(http: Http){
return http.file("photo", {
size: 1,
customErrors: {
field: (err) => `field not found: ${err.field}`,
file: (err) => `No file found for field: ${err.field}`,
size: "File is too large", // can also be plain string.
mimetype: (err) => `File: "${err.filename}" mimetype does not match the expected mimetype: ${err.expected}`,
extension: (err) => `File: "${err.filename}" has unsupported file extension`
}
});
}
Breaking Changes
Converting to typescript came with a few breaking changes listed below
UploadedFile private properties.
The properties belonging to the UploadedFile
class listed below have been made private using typescript.
They are for internal error checking.
[
"stats",
"customErrors",
"cachedError",
"expectedField",
"expectedMimetype",
"reachedLimit",
"expectedExtensions"
]