UNPKG

cumulocity-cypress

Version:
35 lines (34 loc) 2.15 kB
import { Request, RequestHandler, Response } from "express"; import winston from "winston"; import { ClientRequest, IncomingMessage, ServerResponse } from "http"; import { Options as HttpProxyMiddlewareOptions } from "http-proxy-middleware"; import { C8yAuthOptions } from "../auth"; import { C8yPactHttpController } from "./httpcontroller"; import type { C8yCtrlHeader, C8yPactHttpResponse } from "./httpcontroller-options"; import { C8yBaseUrl } from "../types"; export declare function createMiddleware(c8yctrl: C8yPactHttpController, options?: { auth?: C8yAuthOptions; baseUrl?: C8yBaseUrl; logger?: winston.Logger; ignoredPaths?: string[]; errorHandler?: RequestHandler; proxyOptions?: Omit<HttpProxyMiddlewareOptions, "on" | "plugins" | "ejectPlugins">; }): RequestHandler; /** * Wraps a RequestHandler to ignore certain paths. For paths matching items in the * `ignoredPaths` parameter, the handler will call `next()` immediately and not call * the wrapped handler. For matching `startsWith` is used. * @param handler The RequestHandler to wrap * @param ignoredPaths The paths to ignore using exact match * @returns The RequestHandler wrapper */ export declare function wrapPathIgnoreHandler(handler: RequestHandler, ignoredPaths: string[]): RequestHandler; export declare function createResponseInterceptor(c8yctrl: C8yPactHttpController, errorHandler?: RequestHandler): (responseBuffer: Buffer, proxyRes: Request, req: Request, res: Response) => Promise<string | Buffer<ArrayBufferLike>>; export declare function createRequestHandler(c8yctrl: C8yPactHttpController, auth?: C8yAuthOptions): (proxyReq: ClientRequest, req: Request, res: Response) => void; export declare function addC8yCtrlHeader(response: C8yPactHttpResponse | Response, ctrlHeader: C8yCtrlHeader, value: string): void; export declare function toC8yPactResponse(res: Response<any, any>, body: any): C8yPactHttpResponse; export declare function toCypressResponse(req: IncomingMessage | Request, res: ServerResponse<IncomingMessage> | Response, options?: { reqBody?: string; resBody?: string; duration?: number; }): Cypress.Response<any>;