Skip to content

Commit 6cde44f

Browse files
committed
Add "res" event after "proxyRes", when the headers of res is already filled (using web-outgoing.js)
1 parent 255fb84 commit 6cde44f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

index.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ declare class Server extends events.EventEmitter {
106106
on(event: "proxyReq", listener: Server.ProxyReqCallback): this;
107107
on(event: "proxyRes", listener: Server.ProxyResCallback): this;
108108
on(event: "proxyReqWs", listener: Server.ProxyReqWsCallback): this;
109+
on(event: "res", listener: Server.ResCallback): this;
109110
on(event: "econnreset", listener: Server.EconnresetCallback): this;
110111
on(event: "end", listener: Server.EndCallback): this;
111112
on(event: "open", listener: Server.OpenCallback): this;
@@ -117,6 +118,7 @@ declare class Server extends events.EventEmitter {
117118
once(event: "proxyReq", listener: Server.ProxyReqCallback): this;
118119
once(event: "proxyRes", listener: Server.ProxyResCallback): this;
119120
once(event: "proxyReqWs", listener: Server.ProxyReqWsCallback): this;
121+
once(event: "res", listener: Server.ResCallback): this;
120122
once(event: "econnreset", listener: Server.EconnresetCallback): this;
121123
once(event: "end", listener: Server.EndCallback): this;
122124
once(event: "open", listener: Server.OpenCallback): this;
@@ -213,6 +215,11 @@ declare namespace Server {
213215
options: ServerOptions,
214216
head: any,
215217
) => void;
218+
type ResCallback<TIncomingMessage = http.IncomingMessage, TServerResponse = http.ServerResponse> = (
219+
proxyRes: TIncomingMessage,
220+
req: TIncomingMessage,
221+
res: TServerResponse,
222+
) => void;
216223
type EconnresetCallback<TError = Error, TIncomingMessage = http.IncomingMessage, TServerResponse = http.ServerResponse> = (
217224
err: TError,
218225
req: TIncomingMessage,

lib/http-proxy/passes/web-incoming.js

+4
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,10 @@ module.exports = {
191191
}
192192
}
193193

194+
if (!options.selfHandleResponse) {
195+
if(server) { server.emit('res', proxyRes, req, res); }
196+
}
197+
194198
if (!res.finished) {
195199
// Allow us to listen when the proxy has completed
196200
proxyRes.on('end', function () {

0 commit comments

Comments
 (0)