http-ws-proxy-middleware
Version:
The one-liner node.js proxy middleware for connect, express and browser-sync
101 lines (92 loc) • 2.7 kB
TypeScript
/// <reference types="node" />
import * as http from 'http'
import * as net from 'net'
import * as tls from 'tls'
import * as connect from 'connect'
import * as httpProxy from 'http-proxy'
import { Readable } from 'stream'
declare function proxy(config: proxy.Config): proxy.Proxy
declare function proxy(
contextOrUri: string | string[] | proxy.Filter,
config?: proxy.Config
): proxy.Proxy
declare namespace proxy {
type Filter = (pathname: string, req: http.IncomingMessage) => boolean
type Logger = (...args: any[]) => void
interface LogProvider {
log: Logger
debug?: Logger
info?: Logger
warn?: Logger
error?: Logger
}
interface Config {
pathRewrite?:
| { [regexp: string]: string }
| ((path: string, req: http.IncomingMessage) => string)
router?:
| { [hostOrPath: string]: string }
| ((req: http.IncomingMessage) => string)
logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent'
logProvider?(provider: LogProvider): LogProvider
onError?(
err: Error,
req: http.IncomingMessage,
res: http.ServerResponse
): void
onProxyRes?(
proxyRes: http.IncomingMessage,
req: http.IncomingMessage,
res: http.ServerResponse
): void
onProxyReq?(
proxyReq: http.ClientRequest,
req: http.IncomingMessage,
res: http.ServerResponse
): void
onProxyReqWs?(
proxyReq: http.ClientRequest,
req: http.IncomingMessage,
socket: net.Socket,
options: httpProxy.ServerOptions,
head: any
): void
onOpen?(proxySocket: net.Socket): void
onClose?(res: http.IncomingMessage, socket: net.Socket, head: any): void
target?: string
forward?: string
agent?: http.Agent
ssl?: tls.TlsOptions
ws?: boolean
xfwd?: boolean
secure?: boolean
toProxy?: boolean
prependPath?: boolean
ignorePath?: boolean
localAddress?: string
changeOrigin?: boolean
preserveHeaderKeyCase?: boolean
auth?: string
hostRewrite?: string
autoRewrite?: boolean
protocolRewrite?: string
cookieDomainRewrite?: false | string | { [domain: string]: string }
cookiePathRewrite?: false | string | { [path: string]: string }
headers?: { [header: string]: string }
proxyTimeout?: number
timeout?: number
followRedirects?: boolean
selfHandleResponse?: boolean
buffer?: Readable
/**
* @deprecated
*/
proxyHost?: any
/**
* @deprecated
*/
proxyTable?: any
}
type Proxy = connect.NextHandleFunction & {close(): void}
}
export = proxy