Repository URL to install this package:
|
Version:
0.3.11 ▾
|
'use strict';
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var _require = require('express'),
Router = _require.Router;
var request = require('request');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var querystring = require('querystring');
var _require2 = require('url'),
parse = _require2.parse;
var proxy = function proxy(API) {
return function (req, res) {
var url = '' + API + parse(req.originalUrl).path;
// extract headers, except `host` and `origin`
// eslint-disable-next-line no-unused-vars
var _req$headers = req.headers,
host = _req$headers.host,
origin = _req$headers.origin,
headers = _objectWithoutProperties(_req$headers, ['host', 'origin']);
var method = req.method;
var body = void 0;
if (req.body && req.headers['content-type'] === 'application/x-www-form-urlencoded') {
body = querystring.stringify(req.body);
}
if (req.body && req.headers['content-type'] === 'application/json') {
body = JSON.stringify(req.body);
}
console.log('Proxying ' + method + ': ' + url);
// make a new request, pipe result to response
request({ url: url, headers: headers, method: method, body: body }).on('error', function (err) {
// handle pipe errors
req.next(err);
}).pipe(res);
};
};
module.exports = function (_ref) {
var API = _ref.API;
if (process.env.NODE_ENV === 'development') {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
}
var middleware = Router();
middleware.use(cookieParser());
middleware.use(bodyParser.urlencoded({ extended: true }));
middleware.use('/api/v2.0/users/oauth/facebook', bodyParser.urlencoded({ extended: true }), proxy(API));
middleware.use('/api/v2.0/users', bodyParser.json(), proxy(API));
return middleware;
};