@roots/bud-api
Version:
bud.js core module
77 lines (69 loc) • 2.01 kB
text/typescript
import type {
HttpProxy,
Options as ProxyOptions,
} from '@roots/bud-support/http-proxy-middleware'
import type {Agent} from 'node:http'
import type {ServerOptions as HttpsServerOptions} from 'node:https'
import type {Stream} from 'node:stream'
export interface Options extends HttpProxy.Options {
agent?: Agent
auth?: string
autoRewrite?: boolean
buffer?: Stream
changeOrigin?: boolean
cookieDomainRewrite?:
| {[oldDomain: string]: string}
| false
| string
| undefined
cookiePathRewrite?:
| {[oldDomain: string]: string}
| false
| string
| undefined
ejectPlugins: boolean
followRedirects?: boolean
forward?: ProxyOptions[`forward`]
headers?: Record<string, string>
hostRewrite?: string
ignorePath?: boolean
localAddress?: string
logger: Pick<Console, `error` | `info` | `warn`>
method?: string
on: ProxyOptions[`on`]
onProxyReq?: any
onProxyRes?: any
pathFilter: Array<string>
pathRewrite?: HttpProxy.Options[`pathRewrite`]
plugins: ProxyOptions[`plugins`]
prependPath?: boolean
preserveHeaderKeyCase?: boolean
protocolRewrite?: HttpProxy.Options[`protocolRewrite`]
proxyTimeout?: number
/**
* Not a proxy-party option
*
* Used by default `onProxyRes` handler to rewrite the page body
*/
replacements?: ReplacementCallback | ReplacementTuples
router?: HttpProxy.Options[`router`]
secure?: boolean
selfHandleResponse?: boolean
ssl?: HttpsServerOptions
target?: HttpProxy.Options[`target`]
timeout?: number
toProxy?: boolean
ws?: boolean
xfwd?: boolean
}
export type ReplacementTuples = Array<[string, string]>
export type ReplacementCallback = (
replacements: ReplacementTuples | undefined,
) => ReplacementTuples
export type OptionsCallback = (
options: Partial<Options> | undefined,
) => Partial<Options>
export type Parameters = [
(boolean | number | OptionsCallback | Partial<Options> | string | URL)?,
(Partial<Options> | ReplacementCallback | ReplacementTuples)?,
]