UNPKG

@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
/*! * @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;