0.1.0 • Published 11 months ago

@aprilnea/nest-file-fastify v0.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

!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!


Github Actions NPM NPM

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 file

  • options: optional object of type UploadOptions

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 files

  • maxCount: optional number - maximum number of files to accept

  • options: optional object of type UploadOptions

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:

Any files

import { AnyFilesInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';

@Post('upload')
@UseInterceptors(AnyFilesInterceptor()
uploadFile(@UploadedFiles() files: MemoryStorageFile[]) {
  console.log(files);
}

AnyFilesInterceptor arguments: