@coolgk/utils
Version:
javascript, typescript utility and wrapper functions and classes: array, string, base64, ampq, bcrypt, cache, captcha, csv, email, jwt, number, pdf, tmp, token, unit conversion, url params, session, form data, google sign in, facebook sign in
71 lines (69 loc) • 2.35 kB
TypeScript
/*!
* @package @coolgk/utils
* @version 3.1.4
* @link https://github.com/coolgk/node-utils
* @license MIT
* @author Daniel Gong <daniel.k.gong@gmail.com>
*
* Copyright (c) 2017 Daniel Gong <daniel.k.gong@gmail.com>. All rights reserved.
* Licensed under the MIT License.
*/
/// <reference types="node" />
/*!
* Copyright (c) 2017 Daniel Gong <daniel.k.gong@gmail.com>. All rights reserved.
* Licensed under the MIT License.
*/
import { IncomingMessage, ServerResponse } from 'http';
export interface IFormdataConfig {
array?: boolean;
mode?: number;
prefix?: string;
postfix?: string;
dir?: string;
limits?: {
fieldNameSize?: number;
fieldSize?: number;
fields?: number;
fileSize?: number;
files?: number;
parts?: number;
headerPairs?: number;
postSize?: number;
};
fileFieldNames?: string | string[];
alwaysReject?: boolean;
}
export declare enum FormDataError {
FILE_SIZE_EXCEEDED_LIMIT = "FILE_SIZE_EXCEEDED_LIMIT",
NUM_OF_NON_FILE_FIELDS_EXCEEDED_LIMIT = "NUM_OF_NON_FILE_FIELDS_EXCEEDED_LIMIT",
NUM_OF_FIELDS_EXCEEDED_LIMIT = "NUM_OF_FIELDS_EXCEEDED_LIMIT",
NUM_OF_FILES_EXCEEDED_LIMIT = "NUM_OF_FILES_EXCEEDED_LIMIT",
POST_SIZE_EXCEEDED_LIMIT = "POST_SIZE_EXCEEDED_LIMIT",
FIELD_SIZE_EXCEEDED_LIMIT = "FIELD_SIZE_EXCEEDED_LIMIT",
INVALID_JSON = "INVALID_JSON",
}
export interface IFile {
error?: string | Error;
fieldname: string;
filename: string;
encoding: string;
mimetype: string;
size: number;
path: string;
remove: () => void;
}
export interface IFormData {
[key: string]: string | string[] | IFile[] | IFile;
}
export interface IRequest extends IncomingMessage {
[key: string]: any;
}
export declare function getFormData(request: IncomingMessage, options?: IFormdataConfig): Promise<IFormData>;
export declare function formData(request: IncomingMessage, globalOptions?: IFormdataConfig): {
getData: (names: string[] | string, options: IFormdataConfig) => Promise<IFormData>;
};
export interface IExpressFormdataConfig extends IFormdataConfig {
requestFieldName?: string;
}
export declare function express(options?: IExpressFormdataConfig): (request: IRequest, response: ServerResponse, next: () => void) => void;
export default getFormData;