UNPKG

hapi-bouncer

Version:
91 lines (68 loc) 3.14 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = createProxyHandler; var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _url = require('url'); var _url2 = _interopRequireDefault(_url); var _createOnResponse = require('./createOnResponse'); var _createOnResponse2 = _interopRequireDefault(_createOnResponse); var _getPayload = require('../../utils/getPayload'); var _getPayload2 = _interopRequireDefault(_getPayload); var _ParsedUrl = require('../../utils/ParsedUrl'); var _ParsedUrl2 = _interopRequireDefault(_ParsedUrl); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var debug = (0, _debug2.default)('hapi-bouncer:createProxyHandler:debug'); var debugErr = (0, _debug2.default)('hapi-bouncer:createProxyHandler:error'); function createProxyHandler(_ref) { var from = _ref.from, to = _ref.to, mapUriStrategy = _ref.mapUriStrategy, onPayload = _ref.onPayload; var debugReq = (0, _debug2.default)('hapi-bouncer:createProxyHandler:' + from.hostname + ':req:debug'); var debugRes = (0, _debug2.default)('hapi-bouncer:createProxyHandler:' + from.hostname + ':res:debug'); if (!mapUriStrategy) { throw new Error('Strategy is not set'); } // debug('init %s to %s', from.hostname, to.hostname) function mapUri(request, cb) { debug('mapUri %s to %s', from.hostname, to.hostname); var newUrl = _url2.default.format(mapUriStrategy(from, to, request.url)); var headers = { 'x-forwarded-proto': from.protocol, 'x-forwarded-for': request.info.remoteAddress }; if (request.info.remotePort) { headers['x-forwarded-port'] = String(request.info.remotePort); } var newHeaders = _extends({}, request.headers); (0, _getPayload2.default)(request.payload).then(function (payload) { var payloadRec = { oldUrl: from.getHostUrl() + request.url.href, newUrl: newUrl, headers: newHeaders, method: request.method, mime: request.mime, params: request.params, payload: payload }; onPayload && onPayload(payloadRec); debugReq('%s', JSON.stringify(_extends({}, payloadRec, { payload: (payload || '').substring(0, 300) }), null, ' ')); }).catch(function (e) { debugErr('error: %o', e); // cb(null, newUrl, newHeaders) }); cb(null, newUrl, newHeaders); } return { mapUri: mapUri, onResponse: (0, _createOnResponse2.default)(debugRes, to), xforward: false, localStatePassThrough: true, passThrough: true }; } //# sourceMappingURL=createProxyHandler.js.map