Interface WebSocketRequestTransform

This defines the request transforms that we support for all passed through requests (both HTTP and WebSockets).

interface WebSocketRequestTransform {
    matchReplaceHost?: {
        replacements: MatchReplacePairs;
        updateHostHeader?: string | boolean;
    };
    matchReplacePath?: MatchReplacePairs;
    matchReplaceQuery?: MatchReplacePairs;
    replaceHost?: {
        targetHost: string;
        updateHostHeader?: string | boolean;
    };
    setProtocol?: "wss" | "ws";
}

Hierarchy (view full)

Properties

matchReplaceHost?: {
    replacements: MatchReplacePairs;
    updateHostHeader?: string | boolean;
}

Perform a series of string match & replace operations on the request host.

This cannot be combined with replaceHost.

If updateHostHeader is true, the Host (or :authority for HTTP/2+) header will be updated automatically to match. If updateHostHeader is a string, that will be used directly as the header value. If it's false no change will be made. If not specified this defaults to true.

matchReplacePath?: MatchReplacePairs

Perform a series of string match & replace operations on the request path.

matchReplaceQuery?: MatchReplacePairs

Perform a series of string match & replace operations on the request query string.

replaceHost?: {
    targetHost: string;
    updateHostHeader?: string | boolean;
}

Replace the request host with a single fixed value, effectively forwarding all requests to a different hostname.

This cannot be combined with matchReplaceHost.

If updateHostHeader is true, the Host (or :authority for HTTP/2+) header will be updated automatically to match. If updateHostHeader is a string, that will be used directly as the header value. If it's false no change will be made. If not specified this defaults to true.

setProtocol?: "wss" | "ws"

Override the request protocol. If replaceHost & matchReplaceHost are not specified and the URL no explicitly specified port, this will automatically switch to the appropriate port (e.g. from 80 to 443).