UNPKG

formzilla

Version:

Fastify plugin for parsing multipart/form data

42 lines (40 loc) 1.23 kB
import { Readable } from "stream"; import { FileInfo, Limits } from "busboy"; import { FastifyPluginOptions, FastifyPluginAsync } from "fastify"; export interface Dictionary extends Object { [key: string | symbol]: any; } export interface File { field: string | undefined; originalName: string; encoding: string; mimeType: string; path: string | undefined; stream: Readable | undefined; data: Buffer | undefined; error: Error | undefined; } export type FileHandler = (name: string, stream: Readable, info: FileInfo) => File | Promise<File>; export interface StorageOption { process: FileHandler; } export interface FileSaveTarget { directory?: string; fileName?: string; } export type TargetType = FileSaveTarget | ((source: File) => FileSaveTarget); export interface FormDataParserPluginOptions extends FastifyPluginOptions { limits?: Limits; storage?: StorageOption; } export type FormDataParserPlugin = FastifyPluginAsync<FormDataParserPluginOptions> & Dictionary; export interface FieldParser { parseField(name: string, value: any): any; } declare module "fastify" { interface FastifyRequest { __files__?: Array<File>; } } declare const formDataParser: FormDataParserPlugin; export default formDataParser;