Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback


A middleware framework for handling HTTP with Deno 🐿️ 🦕
Extremely Popular
Go to Latest
interface ProxyOptions
import { type ProxyOptions } from "";

Type Parameters

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


fetch: Fetch

The fetch function to use to proxy the request. This defaults to the global fetch function. This is designed for test mocking purposes.

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.

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.

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

proxyHeaders: boolean

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


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.

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.

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.