Skip to content

Commit

Permalink
Basic proxying with headers override
Browse files Browse the repository at this point in the history
  • Loading branch information
scottcorgan committed Apr 25, 2014
1 parent 5ebaead commit 381c2cb
Show file tree
Hide file tree
Showing 1,486 changed files with 159,055 additions and 0 deletions.
Empty file added .gitignore
Empty file.
45 changes: 45 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
var request = require('request');
var _ = require('lodash');
var merge = require('merge');
var urlJoin = require('url-join');
var Utils = require('./superstatic-utils');

module.exports = function proxy (req, res, next) {
var utils = new Utils({
req: req,
name: 'proxy'
});

if (utils.skipService()) return next();

var serviceConfig = utils.serviceConfig();

// Skip if there are not child tasks or if this is only
// a single proxy. If there is no origin, then skip.
if (!utils.hasServiceTask(utils.serviceTask())) return next();

var config = utils.serviceTaskConfig();
var url = urlJoin(config.origin, pathWithoutTaskName(utils));

var requestObject = {
url: url,
headers: merge(lowerCaseObjectKeys(config.headers), lowerCaseObjectKeys(req.headers))
};

// Proxy request
request.get(requestObject).pipe(res);

function pathWithoutTaskName () {
return _.rest(utils.servicePath().split('/')).join('/');
}

function lowerCaseObjectKeys (source) {
var lowerCaseObject = {};

_.each(source, function (val, key) {
lowerCaseObject[key.toLowerCase()] = val;
});

return lowerCaseObject;
};
};
1 change: 1 addition & 0 deletions node_modules/.bin/_mocha

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions node_modules/.bin/mocha

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions node_modules/connect/.npmignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions node_modules/connect/.travis.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions node_modules/connect/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

84 changes: 84 additions & 0 deletions node_modules/connect/Readme.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions node_modules/connect/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

81 changes: 81 additions & 0 deletions node_modules/connect/lib/cache.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

92 changes: 92 additions & 0 deletions node_modules/connect/lib/connect.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 381c2cb

Please sign in to comment.