{"_id":"@aprilnea/nest-file-fastify","name":"@aprilnea/nest-file-fastify","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aprilnea/nest-file-fastify","version":"0.1.0","description":"fastify-multipart decorators for Nest.js","license":"MIT","main":"build/src/index.js","types":"build/src/index.d.ts","keywords":["nest","nestjs","fastify","multipart","fastify-multipart","upload","file","blazity"],"publishConfig":{"access":"public"},"scripts":{"dev":"concurrently \"tsc --watch --p tsconfig.lib.json\" \"tsc --watch --p tsconfig.examples.json\"","watch":"nodemon ./build/examples/index.js","build:ci":"tsc --p tsconfig.lib.json && tsc --p tsconfig.examples.json","build":"tsc --p tsconfig.lib.json","lint":"eslint \"src/**\" --ext \".js,.jsx,.ts,.tsx\"","lint:fix":"npm run lint -- --fix","clean":"rimraf build","prepublishOnly":"yarn clean && npm run build"},"dependencies":{"@fastify/multipart":"^8.3.0"},"devDependencies":{"@nestjs/common":"^8.0.6","@nestjs/config":"^1.0.1","@nestjs/core":"^8.0.6","@nestjs/platform-fastify":"^8.0.6","@types/busboy":"^0.2.4","@types/node":"^14.14.10","@typescript-eslint/eslint-plugin":"^4.21.0","@typescript-eslint/parser":"^4.21.0","concurrently":"^6.2.1","cross-env":"^7.0.3","eslint":"^7.32.0","eslint-config-prettier":"^7.0.0","eslint-plugin-prettier":"^3.2.0","fastify":"^3.21.3","nodemon":"^2.0.12","prettier":"^2.2.1","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.3.0","typescript":"^4.1.2"},"_id":"@aprilnea/nest-file-fastify@0.1.0","gitHead":"09514d7426f056b8823a8125e6d408133f07bd34","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-2ipeYBy3ADj9AQfYjFySGkBsChOIViON+HDJF4gGOaz3ktXyXT8hZdjye9WsonffypEKt0pCwZhNe9eHqsCh1w==","shasum":"dcb5c22397012c6a454711d987e1a8f385bf2488","tarball":"https://registry.npmjs.org/@aprilnea/nest-file-fastify/-/nest-file-fastify-0.1.0.tgz","fileCount":83,"unpackedSize":59017,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoGlTkoQJ19nqxkO/Law4a+XUdstzerMQZFNKxuPZEoAIhAI1rlVPcaA8huKxbp2EJWjqxPGssZKtBjXqQ9ptNY5Y1"}]},"_npmUser":{"name":"aprilnea","email":"github@sku.moe"},"directories":{},"maintainers":[{"name":"aprilnea","email":"github@sku.moe"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nest-file-fastify_0.1.0_1721741293577_0.06689807412471205"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-23T13:28:13.383Z","0.1.0":"2024-07-23T13:28:13.715Z","modified":"2024-07-23T13:28:14.014Z"},"maintainers":[{"name":"aprilnea","email":"github@sku.moe"}],"description":"fastify-multipart decorators for Nest.js","keywords":["nest","nestjs","fastify","multipart","fastify-multipart","upload","file","blazity"],"license":"MIT","readme":"> [!NOTE]\n> Note: This is a forked version of [Blazity/nest-file-fastify](https://github.com/Blazity/nest-file-fastify).\n> \n> 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.\n>\n> 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!\n\n---\n\n<div align=\"left\">\n  <h1> fastify-multipart for Nest.js</h1>\n\n[![Github Actions](https://img.shields.io/github/workflow/status/aprilnea/nest-file-fastify/Build?style=flat-square)](https://github.com/aprilnea/nest-file-fastify)\n[![NPM](https://img.shields.io/npm/v/@aprilnea/nest-file-fastify.svg?style=flat-square)](https://www.npmjs.com/package/@aprilnea/nest-file-fastify)\n[![NPM](https://img.shields.io/npm/dm/@aprilnea/nest-file-fastify?style=flat-square)](https://www.npmjs.com/package/@aprilnea/nest-file-fastify)\n\n</div>\n\nThis library adds decorators for [Nest.js](https://github.com/nestjs/nest) to support [@fastify/multipart](https://github.com/fastify/fastify-multipart). The API is very similar to the official Nest.js Express file decorators.\n\n## Installation\n\nNPM\n\n```bash\n$ npm install @aprilnea/nest-file-fastify @fastify/multipart\n```\n\nYarn\n\n```bash\n$ yarn add @aprilnea/nest-file-fastify @fastify/multipart\n```\n\nand register multpart plugin in your Nest.js application\n\n```typescript\nimport fastyfyMultipart from '@fastify/multipart';\n\n...\n\napp.register(fastyfyMultipart);\n```\n\n## Docs\n\n### Single file\n\n```typescript\nimport { FileInterceptor, UploadedFile, MemoryStorageFile } from '@aprilnea/nest-file-fastify';\n\n@Post('upload')\n@UseInterceptors(FileInterceptor('file'))\nuploadFile(@UploadedFile() file: MemoryStorageFile) {\n  console.log(file);\n}\n```\n\n`FileInterceptor` arguments:\n\n- `fieldname`: string - name of the field that holds a file\n\n- `options`: optional object of type [`UploadOptions`](src/multipart/options.ts#L4)\n\n### Array of files\n\n```typescript\nimport { FilesInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';\n\n@Post('upload')\n@UseInterceptors(FilesInterceptor('files'))\nuploadFile(@UploadedFiles() files: MemoryStorageFile[]) {\n  console.log(files);\n}\n```\n\n`FilesInterceptor` arguments:\n\n- `fieldname`: string - name of the field that holds files\n\n- `maxCount`: optional number - maximum number of files to accept\n\n- `options`: optional object of type [`UploadOptions`](src/multipart/options.ts#L4)\n\n### Multiple files\n\n```typescript\nimport { FileFieldsInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';\n\n@Post('upload')\n@UseInterceptors(FileFieldsInterceptor([\n  { name: 'avatar', maxCount: 1 },\n  { name: 'background', maxCount: 1 },\n]))\nuploadFile(@UploadedFiles() files: { avatar?: MemoryStorageFile[], background?: MemoryStorageFile[] }) {\n  console.log(files);\n}\n```\n\n`FileFieldsInterceptor` arguments:\n\n- `uploadFields`: object of type [`UploadField`](src/multipart/handlers/file-fields.ts#L10)\n\n- `options`: optional object of type [`UploadOptions`](src/multipart/options.ts#L4)\n\n### Any files\n\n```typescript\nimport { AnyFilesInterceptor, UploadedFiles, MemoryStorageFile } from '@aprilnea/nest-file-fastify';\n\n@Post('upload')\n@UseInterceptors(AnyFilesInterceptor()\nuploadFile(@UploadedFiles() files: MemoryStorageFile[]) {\n  console.log(files);\n}\n```\n\n`AnyFilesInterceptor` arguments:\n\n- `options`: optional object of type [`UploadOptions`](src/multipart/options.ts#L4)\n","readmeFilename":"README.md"}