Skip to content

responseInterceptor uses more constrained types than onProxyRes provides #708

Closed
@marchuffnagle

Description

@marchuffnagle

Checks

Describe the bug (be clear and concise)

The onProxyRes option expects an OnProxyResCallback, which is defined as

export type OnProxyResCallback = (
  proxyRes: http.IncomingMessage,
  req: Request,
  res: Response
) => void;

The req and res parameters extend express's Request and Response.

The documentation demonstrates using responseInterceptor to build that callback. Although the onProxyRes is going to receive a Request instance, responseInterceptor only allows you to expect an http.IncomingMessage. It seems like you should be able to expect a Request for the req argument.

export function responseInterceptor(interceptor: Interceptor) {

where Interceptor is

type Interceptor = (
  buffer: Buffer,
  proxyRes: http.IncomingMessage,
  req: http.IncomingMessage,
  res: http.ServerResponse
) => Promise<Buffer | string>;

This came up as an issue for me because there is information in the express Request that I need to access in my onProxyRes callback, but can't in a type-safe manner.

Step-by-step reproduction instructions

n/a

Expected behavior (be clear and concise)

responseInterceptor should type req as Request and res as Response.

How is http-proxy-middleware used in your project?

n/a

What http-proxy-middleware configuration are you using?

n/a

What OS/version and node/version are you seeing the problem?

n/a

Additional context (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions