openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
55 lines (43 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setupProxyHeaders = setupProxyHeaders;
exports.koaMiddleware = koaMiddleware;
var _statsdClient = require('statsd-client');
var _statsdClient2 = _interopRequireDefault(_statsdClient);
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _config = require('../config');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const statsdServer = _config.config.get('statsd');
const application = _config.config.get('application');
const domain = `${_os2.default.hostname()}.${application.name}.appMetrics`;
const sdc = new _statsdClient2.default(statsdServer);
function setupProxyHeaders(ctx) {
// Headers
function setOrAppendHeader(ctx, header, value) {
if (!value) {
return;
}
if (ctx.header[header]) {
ctx.header[header] = `${ctx.header[header]}, ${value}`;
} else {
ctx.header[header] = `${value}`;
}
}
setOrAppendHeader(ctx, 'X-Forwarded-For', ctx.request.ip);
return setOrAppendHeader(ctx, 'X-Forwarded-Host', ctx.request.host);
}
async function koaMiddleware(ctx, next) {
let startTime;
if (statsdServer.enabled) {
startTime = new Date();
}
exports.setupProxyHeaders(ctx);
if (statsdServer.enabled) {
sdc.timing(`${domain}.proxyHeadersMiddleware`, startTime);
}
await next();
}
//# sourceMappingURL=proxy.js.map