@aprilnea/nest-file-fastify
v0.1.0
Published
fastify-multipart decorators for Nest.js
Downloads
34
Maintainers
Readme
[!NOTE] Note: This is a forked version of Blazity/nest-file-fastify.
The original repository has not been updated for more than 3 years, so I have decided to continue maintaining this useful library. I have fixed many bugs and plan to keep improving the project.
If you are looking for an actively maintained @fastify/multipart decorator library for Nest.js, feel free to use this version. I'll be working hard to maintain compatibility with the stock API while adding new features and fixing problems!
This library adds decorators for Nest.js to support @fastify/multipart. The API is very similar to the official Nest.js Express file decorators.
Installation
NPM
$ npm install @aprilnea/nest-file-fastify @fastify/multipart
Yarn
$ yarn add @aprilnea/nest-file-fastify @fastify/multipart
and register multpart plugin in your Nest.js application
import fastyfyMultipart from '@fastify/multipart';
...
app.register(fastyfyMultipart);
Docs
Single file
import { FileInterceptor, UploadedFile, MemoryStorageFile } from '@aprilnea/nest-file-fastify';
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
uploadFile(@UploadedFile() file: MemoryStorageFile) {
console.log(file);
}
FileInterceptor
arguments:
fieldname
: string - name of the field that holds a fileoptions
: optional object of typeUploadOptions
Array of files
import { FilesInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';
@Post('upload')
@UseInterceptors(FilesInterceptor('files'))
uploadFile(@UploadedFiles() files: MemoryStorageFile[]) {
console.log(files);
}
FilesInterceptor
arguments:
fieldname
: string - name of the field that holds filesmaxCount
: optional number - maximum number of files to acceptoptions
: optional object of typeUploadOptions
Multiple files
import { FileFieldsInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';
@Post('upload')
@UseInterceptors(FileFieldsInterceptor([
{ name: 'avatar', maxCount: 1 },
{ name: 'background', maxCount: 1 },
]))
uploadFile(@UploadedFiles() files: { avatar?: MemoryStorageFile[], background?: MemoryStorageFile[] }) {
console.log(files);
}
FileFieldsInterceptor
arguments:
uploadFields
: object of typeUploadField
options
: optional object of typeUploadOptions
Any files
import { AnyFilesInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';
@Post('upload')
@UseInterceptors(AnyFilesInterceptor()
uploadFile(@UploadedFiles() files: MemoryStorageFile[]) {
console.log(files);
}
AnyFilesInterceptor
arguments:
options
: optional object of typeUploadOptions