@blastz/koa-better-http-proxy
Version:
http proxy middleware for koa
47 lines (40 loc) • 1.61 kB
JavaScript
;
var isUnset = require('../lib/isUnset');
function resolveBodyEncoding(reqBodyEncoding) {
/* For reqBodyEncoding, these is a meaningful difference between null and
* undefined. null should be passed forward as the value of reqBodyEncoding,
* and undefined should result in utf-8.
*/
return reqBodyEncoding !== undefined ? reqBodyEncoding : 'utf-8';
}
function resolveOptions(options) {
// resolve user argument to program usable options
options = options || {};
return {
agent: options.agent,
proxyReqPathResolver: options.proxyReqPathResolver,
proxyReqOptDecorator: options.proxyReqOptDecorator,
proxyReqBodyDecorator: options.proxyReqBodyDecorator,
userResDecorator: options.userResDecorator,
userResHeadersDecorator: options.userResHeadersDecorator,
filter: options.filter || defaultFilter,
// For backwards compatability, we default to legacy behavior for newly added settings.
parseReqBody: isUnset(options.parseReqBody) ? true : options.parseReqBody,
reqBodyEncoding: resolveBodyEncoding(options.reqBodyEncoding),
headers: { ...(options.headers || {}) },
strippedHeaders: options.strippedHeaders,
preserveReqSession: options.preserveReqSession,
preserveHostHdr: options.preserveHostHdr,
https: options.https,
port: options.port,
reqAsBuffer: options.reqAsBuffer,
connectTimeout: options.connectTimeout,
timeout: options.timeout,
limit: options.limit,
};
}
function defaultFilter() {
// No-op version of filter. Allows everything!
return true;
}
module.exports = resolveOptions;