koa-better-http-proxy
Version:
http proxy middleware for koa
41 lines (29 loc) • 942 B
JavaScript
var as = require('../../lib/as');
function getContentLength(body) {
var result;
if (Buffer.isBuffer(body)) { // Buffer
result = body.length;
} else if (typeof body === 'string') {
result = Buffer.byteLength(body);
}
return result;
}
function prepareProxyReq(container) {
return new Promise(function(resolve) {
var bodyContent = container.proxy.bodyContent;
var reqOpt = container.proxy.reqBuilder;
if (bodyContent) {
bodyContent = container.options.reqAsBuffer ?
as.buffer(bodyContent, container.options) :
as.bufferOrString(bodyContent);
reqOpt.headers['content-length'] = getContentLength(bodyContent);
if (container.options.reqBodyEncoding) {
reqOpt.headers['accept-charset'] = container.options.reqBodyEncoding;
}
}
container.proxy.bodyContent = bodyContent;
resolve(container);
});
}
module.exports = prepareProxyReq;
;