Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/oak/middleware/proxy.ts>ProxyOptions

A middleware framework for handling HTTP with Deno, Node, Bun and Cloudflare Workers 🐿️ 🦕
Very Popular
Latest
interface ProxyOptions
import { type ProxyOptions } from "https://deno.land/x/oak@v17.1.2/middleware/proxy.ts";

Options which can be specified on the proxy middleware.

Type Parameters

R extends string
optional
P extends RouteParams<R> = RouteParams<R>
optional
S extends State = Record<string, any>

Properties

optional
fetch: Fetch

The fetch function to use to proxy the request. This defaults to the global fetch function. It will always be called with a second argument which contains an object of { context } which the context property will be an instance of RouterContext.

This is designed for mocking purposes or implementing a fetch() callback that needs access the current context when it is called.

optional
headers: HeadersInit | ProxyHeadersFunction<S> | ProxyRouterHeadersFunction<R, P, S>

Additional headers that should be set in the response. The value can be a headers init value or a function that returns or resolves with a headers init value.

optional
map: Record<string, R> | ProxyMapFunction<R, P>

Either a record or a proxy map function that will allow proxied requests being handled by the middleware to be remapped to a different remote path.

optional
match: string | RegExp | ProxyMatchFunction<R, P, S>

A string, regular expression or proxy match function what determines if the proxy middleware should proxy the request.

If the value is a string the match will be true if the requests pathname starts with the string. In the case of a regular expression, if the pathname

optional
proxyHeaders: boolean

A flag that indicates if traditional proxy headers should be set in the response. This defaults to true.

Methods

optional
contentType(url: string, contentType?: string): Promise<string | undefined> | string | undefined

A callback hook that is called after the response is received which allows the response content type to be adjusted. This is for situations where the content type provided by the proxy server might not be suitable for responding with.

optional
request(req: Request): Request | Promise<Request>

A callback hook which will be called before each proxied fetch request to allow the native Request to be modified or replaced.

optional
response(res: Response): Response | Promise<Response>

A callback hook which will be called after each proxied fetch response is received to allow the native Response to be modified or replaced.