@gibme/webserver
    Preparing search index...

    Variable responseInterceptorConst

    responseInterceptor: <
        TReq extends IncomingMessage = IncomingMessage,
        TRes extends
            ServerResponse<IncomingMessage> = ServerResponse<IncomingMessage>,
    >(
        interceptor: Interceptor<TReq, TRes>,
    ) => (proxyRes: IncomingMessage, req: TReq, res: TRes) => Promise<void> = ProxyResponseInterceptor

    Type Declaration

      • <
            TReq extends IncomingMessage = IncomingMessage,
            TRes extends
                ServerResponse<IncomingMessage> = ServerResponse<IncomingMessage>,
        >(
            interceptor: Interceptor<TReq, TRes>,
        ): (proxyRes: IncomingMessage, req: TReq, res: TRes) => Promise<void>
      • Intercept responses from upstream. Automatically decompress (deflate, gzip, brotli, zstd). Give developer the opportunity to modify intercepted Buffer and http.ServerResponse

        NOTE: must set options.selfHandleResponse=true (prevent automatic call of res.end())

        Type Parameters

        • TReq extends IncomingMessage = IncomingMessage
        • TRes extends ServerResponse<IncomingMessage> = ServerResponse<IncomingMessage>

        Parameters

        Returns (proxyRes: IncomingMessage, req: TReq, res: TRes) => Promise<void>

        createProxyMiddleware({
        target: 'http://example.com',
        selfHandleResponse: true, // MUST set selfHandleResponse=true
        on: {
        proxyRes: responseInterceptor(async (buffer, proxyRes, req, res) => {
        // modify intercepted buffer and return modified buffer
        const modifiedBuffer = Buffer.from(buffer.toString().replace(/Example/g, 'Demo'), 'utf8');
        return modifiedBuffer;
        }),
        }
        });