You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
57 lines
1.9 KiB
/// <reference types="node" />
|
|
import { FastifyRequest } from 'fastify';
|
|
import { Strategy } from './lib/file-appender';
|
|
export declare type FilesObject = {
|
|
[fieldname: string]: Partial<File>[];
|
|
};
|
|
export interface Field {
|
|
name: string;
|
|
maxCount?: number;
|
|
}
|
|
export interface File {
|
|
fieldname: string;
|
|
originalname: string;
|
|
encoding: string;
|
|
mimetype: string;
|
|
size?: number;
|
|
destination?: string;
|
|
filename?: string;
|
|
path?: string;
|
|
buffer?: Buffer;
|
|
stream?: NodeJS.ReadableStream;
|
|
}
|
|
export declare type FileFilterCallback = (error: Error | null, acceptFile?: boolean) => void;
|
|
export declare type FileFilter = (req: FastifyRequest, file: File, callback: FileFilterCallback) => void;
|
|
export interface Options {
|
|
dest?: string;
|
|
storage?: StorageEngine;
|
|
limits?: {
|
|
fieldNameSize?: number;
|
|
fieldSize?: number;
|
|
fields?: number;
|
|
fileSize?: number;
|
|
files?: number;
|
|
parts?: number;
|
|
headerPairs?: number;
|
|
};
|
|
preservePath?: boolean;
|
|
fileFilter?: FileFilter;
|
|
}
|
|
export interface StorageEngine {
|
|
_handleFile(req: FastifyRequest, file: File, callback: (error?: Error | null, info?: Partial<File>) => void): void;
|
|
_removeFile(req: FastifyRequest, file: File, callback: (error?: Error | null) => void): void;
|
|
}
|
|
export declare type GetFileName = (req: FastifyRequest, file: File, callback: (error: Error | null, filename?: string) => void) => void;
|
|
export declare type GetDestination = (req: FastifyRequest, file: File, callback: (error: Error | null, destination: string) => void) => void;
|
|
export interface DiskStorageOptions {
|
|
destination?: string | GetDestination;
|
|
filename?: GetFileName;
|
|
}
|
|
export declare type Setup = () => {
|
|
storage: StorageEngine;
|
|
limits: Options['limits'];
|
|
preservePath: Options['preservePath'];
|
|
fileFilter: FileFilter;
|
|
fileStrategy: Strategy;
|
|
};
|