UNPKG

openapi-connect

Version:
77 lines (76 loc) 3.51 kB
/// <reference types="node" /> import { IncomingMessage, NextHandleFunction } from 'connect'; import { ILogger } from 'loggerism'; import { ICustomMiddleware } from './middleware/core/customMiddleware'; import { IBodyParserOptions } from './options/bodyParser'; import { ICorsOptionsWithDefaults } from './options/cors'; import { IErrorHandlingOptions, IErrorHandlingOptionsWithDefault } from './options/errorHandling'; import { IErrorLoggingOptions, IErrorLoggingOptionsWithDefaults } from './options/errorLogging'; import { IGracefulShutdownOptions, IGracefulShutdownOptionsWithDefaults } from './options/gracefulShutdown'; import { IHealthOptions, IHealthOptionsWithDefaults } from './options/health'; import { IHelmetOptions, IHelmetOptionsWithDefaults } from './options/helmet'; import { IOAuthOptions, IOAuthOptionsWithDefaults } from './options/oauth'; import { IRequestLoggingOptions, IRequestLoggingOptionsWithDefaults } from './options/requestLogging'; import { IRouterOptions, IRouterOptionsWithDefault } from './options/router'; import { ISecurityOptions, ISecurityOptionsWithDefaults } from './options/security'; import { ISwaggerUIOptions, ISwaggerUIOptionsWithDefaults } from './options/swaggerUi'; import { IUnlessOptions, IUnlessOptionsWithDefaults } from './options/unless'; import { IAPMOptions } from './options/apm'; import { Histogram, Counter } from 'prom-client'; import { ServerResponse } from 'http'; import { ISslOptions, ISslOptionsWithDefaults } from './options/ssl'; export type CustomHandler = NextHandleFunction | ICustomMiddleware; export interface IMiddlewareOptions { helmet?: IHelmetOptions; cors?: ICorsOptionsWithDefaults; requestLogging?: IRequestLoggingOptions; oauth?: IOAuthOptions; bodyParser?: IBodyParserOptions; security?: ISecurityOptions; router: IRouterOptions; health?: IHealthOptions; swaggerUI?: ISwaggerUIOptions; errorLogging?: IErrorLoggingOptions; errorHandling?: IErrorHandlingOptions; collectMetrics?: IMetricsOptions; ssl?: ISslOptions; } export interface IMetricsOptions { requestCount?: Counter<string>; requestDuration?: Histogram<string>; requestLength?: Histogram<string>; responseLength?: Histogram<string>; options?: { extraMasks?: RegExp[]; transformLabels?: (labels: Record<string, string>, req: IncomingMessage, res: ServerResponse) => Record<string, string>; }; } export interface IOptions extends IMiddlewareOptions { port?: number; basePath?: string; logger: ILogger; unless?: IUnlessOptions; gracefulShutdown?: IGracefulShutdownOptions; customHandlers?: CustomHandler[]; apm?: IAPMOptions; } export interface IOptionsWithDefaults extends IOptions { port: number; basePath: string; helmet: IHelmetOptionsWithDefaults; cors: ICorsOptionsWithDefaults; requestLogging: IRequestLoggingOptionsWithDefaults; oauth: IOAuthOptionsWithDefaults; bodyParser: IBodyParserOptions; router: IRouterOptionsWithDefault; security: ISecurityOptionsWithDefaults; health: IHealthOptionsWithDefaults; unless: IUnlessOptionsWithDefaults; swaggerUI: ISwaggerUIOptionsWithDefaults; gracefulShutdown: IGracefulShutdownOptionsWithDefaults; errorLogging: IErrorLoggingOptionsWithDefaults; errorHandling: IErrorHandlingOptionsWithDefault; ssl: ISslOptionsWithDefaults; customHandlers: CustomHandler[]; } export declare const getOptions: (options: IOptions) => IOptionsWithDefaults;