Skip to content

Commit f4bafe1

Browse files
committed
feat: onRes now takes (req, res), instead of (req, resHeaders, resCompat)
Breaks onRes signature
1 parent 0c49b37 commit f4bafe1

File tree

2 files changed

+18
-38
lines changed

2 files changed

+18
-38
lines changed

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ server.on('request', (req, res) => {
5757
proxy.web(req, res, {
5858
hostname: 'localhost'
5959
port: 9000,
60-
onRes: (req, resHeaders, res) => helmet(req, res, () => {})
60+
onRes: (req, res) => helmet(req, res, () => {})
6161
}, err => console.error(err, 'proxy error'))
6262
})
6363
```
@@ -69,10 +69,10 @@ server.on('request', (req, res) => {
6969
proxy.web(req, res, {
7070
hostname: 'localhost'
7171
port: 9000,
72-
onReq: (req, reqHeaders) => {
73-
reqHeaders['x-forwarded-for'] = req.socket.remoteAddress
74-
reqHeaders['x-forwarded-proto'] = req.socket.encrypted ? 'https' : 'http'
75-
reqHeaders['x-forwarded-host'] = req.headers['host']
72+
onReq: (req, headers) => {
73+
headers['x-forwarded-for'] = req.socket.remoteAddress
74+
headers['x-forwarded-proto'] = req.socket.encrypted ? 'https' : 'http'
75+
headers['x-forwarded-host'] = req.headers['host']
7676
}
7777
}, err => console.error(err, 'proxy error'))
7878
})
@@ -102,8 +102,12 @@ server.on('request', (req, res) => {
102102
- `timeout`: incoming request timeout
103103
- `proxyTimeout`: proxy request timeout
104104
- `proxyName`: proxy name used for **Via** header
105-
- `onReq(req, reqHeaders)`: called before proxy request
106-
- `onRes(req, resHeaders, res)`: called before proxy response
105+
- `onReq(req, headers)`: called before proxy request
106+
- `req`: `http.IncomingMessage` or `http2.Http2ServerRequest`
107+
- `headers`: `http.ClientRequest.headers`
108+
- `onRes(req, res)`: called before proxy response
109+
- `req`: `http.IncomingMessage` or `http2.Http2ServerRequest`
110+
- `res`: `http.ServerResponse` or `http2.Http2ServerResponse`
107111

108112
### License
109113

index.js

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -183,40 +183,16 @@ function proxy (req, resOrSocket, options, onRes, onError) {
183183
} else {
184184
setupHeaders(proxyRes.headers)
185185

186+
resOrSocket.statusCode = proxyRes.statusCode
187+
for (const key of Object.keys(proxyRes.headers)) {
188+
resOrSocket.setHeader(key, proxyRes.headers[key])
189+
}
190+
186191
if (onRes) {
187-
if (onRes.length === 3) {
188-
onRes(req, proxyRes.headers, {
189-
setHeader (key, value) {
190-
proxyRes.headers[sanatizeHeaderName(key)] = value
191-
},
192-
removeHeader (key) {
193-
delete proxyRes.headers[sanatizeHeaderName(key)]
194-
},
195-
getHeader (key) {
196-
return proxyRes.headers[sanatizeHeaderName(key)]
197-
},
198-
hasHeader (key) {
199-
return !!proxyRes.headers[sanatizeHeaderName(key)]
200-
},
201-
get statusCode () {
202-
return proxyRes.statusCode
203-
},
204-
set statusCode (value) {
205-
proxyRes.statusCode = value
206-
},
207-
get statusMessage () {
208-
return proxyRes.statusMessage
209-
},
210-
set statusMessage (value) {
211-
proxyRes.statusMessage = value
212-
}
213-
})
214-
} else {
215-
onRes(req, proxyRes.headers)
216-
}
192+
onRes(req, resOrSocket)
217193
}
218194

219-
resOrSocket.writeHead(proxyRes.statusCode, proxyRes.headers)
195+
resOrSocket.writeHead(resOrSocket.statusCode)
220196
proxyRes.on('end', () => {
221197
resOrSocket.addTrailers(proxyRes.trailers)
222198
})

0 commit comments

Comments
 (0)