http2-proxy
Advanced tools
Comparing version 0.1.21 to 0.1.22
47
index.js
@@ -86,3 +86,3 @@ const http2 = require('http2') | ||
.split(',') | ||
.some(name => name.trim().toLowerCase().endsWith(proxyName.toLowerCase())) | ||
.some(name => sanatizeHeaderName(name).endsWith(proxyName.toLowerCase())) | ||
) { | ||
@@ -185,9 +185,38 @@ throw createError('loop detected', null, 508) | ||
} else { | ||
const headers = setupHeaders({ ...proxyRes.headers }) | ||
setupHeaders(proxyRes.headers) | ||
if (onRes) { | ||
onRes(req, headers) | ||
if (onRes.length === 3) { | ||
onRes(req, proxyRes.headers, { | ||
setHeader (key, value) { | ||
proxyRes.headers[sanatizeHeaderName(key)] = value | ||
}, | ||
removeHeader (key) { | ||
delete proxyRes.headers[sanatizeHeaderName(key)] | ||
}, | ||
getHeader (key) { | ||
return proxyRes.headers[sanatizeHeaderName(key)] | ||
}, | ||
hasHeader (key) { | ||
return !!proxyRes.headers[sanatizeHeaderName(key)] | ||
}, | ||
get statusCode () { | ||
return proxyRes.statusCode | ||
}, | ||
set statusCode (value) { | ||
proxyRes.statusCode = value | ||
}, | ||
get statusMessage () { | ||
return proxyRes.statusMessage | ||
}, | ||
set statusMessage (value) { | ||
proxyRes.statusMessage = value | ||
} | ||
}) | ||
} else { | ||
onRes(req, proxyRes.headers) | ||
} | ||
} | ||
resOrSocket.writeHead(proxyRes.statusCode, headers) | ||
resOrSocket.writeHead(proxyRes.statusCode, proxyRes.headers) | ||
proxyRes.on('end', () => { | ||
@@ -248,3 +277,3 @@ resOrSocket.addTrailers(proxyRes.trailers) | ||
function getRequestHeaders (req) { | ||
const headers = setupHeaders({ ...req.headers }) | ||
const headers = setupHeaders(Object.assign({}, req.headers)) | ||
@@ -300,4 +329,4 @@ // Remove pseudo headers | ||
if (connection && connection !== 'close') { | ||
for (const key of connection.split(',')) { | ||
delete headers[key.trim().toLowerCase()] | ||
for (const name of connection.split(',')) { | ||
delete headers[sanatizeHeaderName(name)] | ||
} | ||
@@ -318,2 +347,6 @@ } | ||
function sanatizeHeaderName (name) { | ||
return name.trim().toLowerCase() | ||
} | ||
function createError (msg, code, statusCode) { | ||
@@ -320,0 +353,0 @@ const err = new Error(msg) |
{ | ||
"name": "http2-proxy", | ||
"version": "0.1.21", | ||
"version": "0.1.22", | ||
"scripts": { | ||
@@ -5,0 +5,0 @@ "dev": "nodemon --inspect=9308 --expose-http2 src", |
@@ -60,13 +60,3 @@ # node-http2-proxy | ||
port: 9000, | ||
onRes: (req, resHeaders) => helmet({ | ||
setHeader (key, val) { | ||
resHeaders[key.trim().toLowerCase()] = val | ||
}, | ||
getHeader (key) { | ||
return resHeaders[key.trim().toLowerCase()] | ||
}, | ||
removeHeader (key) { | ||
delete resHeaders[key.trim().toLowerCase()] | ||
} | ||
}, () => {}) | ||
onRes: (req, resHeaders, res) => helmet(req, res, () => {}) | ||
}, err => console.error(err, 'proxy error')) | ||
@@ -117,3 +107,3 @@ }) | ||
- `onReq(req, reqHeaders)`: called before proxy request | ||
- `onRes(req, resHeaders)`: called before proxy response | ||
- `onRes(req, resHeaders, res)`: called before proxy response | ||
@@ -120,0 +110,0 @@ ### License |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14230
304
111