UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

55 lines (43 loc) 1.44 kB
'use strict'; 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