UNPKG

@h4ad/serverless-adapter

Version:

Run REST APIs and other web applications using your existing Node.js application framework (NestJS, Express, Koa, Hapi, Fastify and many others), on top of AWS, Azure, Digital Ocean and many other clouds.

160 lines (153 loc) 5.88 kB
import { IncomingMessage, ServerResponse } from 'http'; import { NextHandleFunction } from 'connect'; import { HttpError } from 'http-errors'; import { F as FrameworkContract } from '../../framework.contract-td-lRvq6.cjs'; import { OptionsJson, Options, OptionsText, OptionsUrlencoded } from 'body-parser'; /** * The options for {@link BaseBodyParserFramework} * * @breadcrumb Frameworks / BodyParserFramework * @public */ type BodyParserOptions = { /** * Implements a custom way of handling error. * * @defaultValue {@link BaseBodyParserFramework.defaultHandleOnError} * * @example * ```typescript * customErrorHandler: (req: IncomingMessage, response: ServerResponse, error: HttpError<any>) => { * response.setHeader('content-type', 'text/plain'); * response.statusCode = error.statusCode; * // always call end to return the error * response.end(error.message); * } * ``` * * @param request - The referecene for request * @param response - The reference for response * @param error - The error throwed by body-parser */ customErrorHandler?: (request: IncomingMessage, response: ServerResponse, error: HttpError<any>) => void; }; /** * The base class used by other body-parser functions to parse a specific content-type * * @breadcrumb Frameworks / BodyParserFramework * @public */ declare class BaseBodyParserFramework<TApp> implements FrameworkContract<TApp> { protected readonly framework: FrameworkContract<TApp>; protected readonly middleware: NextHandleFunction; protected readonly options?: BodyParserOptions | undefined; /** * Default Constructor */ protected constructor(framework: FrameworkContract<TApp>, middleware: NextHandleFunction, options?: BodyParserOptions | undefined); /** * The selected error handler */ protected readonly errorHandler: NonNullable<BodyParserOptions['customErrorHandler']>; /** * {@inheritDoc} */ sendRequest(app: TApp, request: IncomingMessage, response: ServerResponse): void; /** * Handle next execution called by the cors package */ protected onBodyParserFinished(app: TApp, request: IncomingMessage, response: ServerResponse): () => void; /** * The default function to handle errors * * @param _request - The referecene for request * @param response - The reference for response * @param error - The error throwed by body-parser */ protected defaultHandleOnError(_request: IncomingMessage, response: ServerResponse, error: HttpError<any>): void; } /** * The body-parser options for application/json * * @remarks {@link https://github.com/expressjs/body-parser#bodyparserjsonoptions} * * @breadcrumb Frameworks / BodyParserFramework / JsonBodyParserFramework * @public */ type JsonBodyParserFrameworkOptions = OptionsJson & BodyParserOptions; /** * The body-parser class used to parse application/json. * * @breadcrumb Frameworks / BodyParserFramework / JsonBodyParserFramework * @public */ declare class JsonBodyParserFramework<TApp> extends BaseBodyParserFramework<TApp> implements FrameworkContract<TApp> { /** * Default Constructor */ constructor(framework: FrameworkContract<TApp>, options?: JsonBodyParserFrameworkOptions); } /** * The body-parser options for application/octet-stream * * @remarks {@link https://github.com/expressjs/body-parser#bodyparserrawoptions} * * @breadcrumb Frameworks / BodyParserFramework / RawBodyParserFramework * @public */ type RawBodyParserFrameworkOptions = Options & BodyParserOptions; /** * The body-parser class used to parse application/octet-stream. * * @breadcrumb Frameworks / BodyParserFramework / RawBodyParserFramework * @public */ declare class RawBodyParserFramework<TApp> extends BaseBodyParserFramework<TApp> implements FrameworkContract<TApp> { /** * Default Constructor */ constructor(framework: FrameworkContract<TApp>, options?: RawBodyParserFrameworkOptions); } /** * The body-parser options for text/plain * * @remarks {@link https://github.com/expressjs/body-parser#bodyparsertextoptions} * * @breadcrumb Frameworks / BodyParserFramework / TextBodyParserFramework * @public */ type TextBodyParserFrameworkOptions = OptionsText & BodyParserOptions; /** * The body-parser class used to parse text/plain. * * @breadcrumb Frameworks / BodyParserFramework / TextBodyParserFramework * @public */ declare class TextBodyParserFramework<TApp> extends BaseBodyParserFramework<TApp> implements FrameworkContract<TApp> { /** * Default Constructor */ constructor(framework: FrameworkContract<TApp>, options?: TextBodyParserFrameworkOptions); } /** * The body parser options for application/x-www-form-urlencoded * * @remarks {@link https://github.com/expressjs/body-parser#bodyparserurlencodedoptions} * * @breadcrumb Frameworks / BodyParserFramework / UrlencodedBodyParserFramework * @public */ type UrlencodedBodyParserFrameworkOptions = OptionsUrlencoded & BodyParserOptions; /** * The body-parser class used to parse application/x-www-form-urlencoded. * * @breadcrumb Frameworks / BodyParserFramework / UrlencodedBodyParserFramework * @public */ declare class UrlencodedBodyParserFramework<TApp> extends BaseBodyParserFramework<TApp> implements FrameworkContract<TApp> { /** * Default Constructor */ constructor(framework: FrameworkContract<TApp>, options?: UrlencodedBodyParserFrameworkOptions); } export { BaseBodyParserFramework, type BodyParserOptions, JsonBodyParserFramework, type JsonBodyParserFrameworkOptions, RawBodyParserFramework, type RawBodyParserFrameworkOptions, TextBodyParserFramework, type TextBodyParserFrameworkOptions, UrlencodedBodyParserFramework, type UrlencodedBodyParserFrameworkOptions };