connect-prism
Version:
Record, mock, and proxy HTTP traffic.
42 lines (31 loc) • 1.03 kB
JavaScript
var PrismManager = require('./prism-manager');
var PrismUtils = require('./services/prism-utils');
var UrlRewrite = require('./services/url-rewrite');
function HttpEvents(prismManager, urlRewrite, prismUtils) {
this.handleRequest = function(req, res) {
var prism = prismManager.get(req.url);
if (prism) {
// rewrite request if applicable
if (prism.config.rules.length) {
prism.config.rules.forEach(urlRewrite.rewriteRequest(req));
}
// Add headers present in the config object
if (prism.config.headers != null) {
for(var key in prism.config.headers) {
req.headers[key] = prism.config.headers[key];
}
}
prism.config.requestHandler(req, res, prism);
return true;
}
return false;
};
this.handleResponse = function(proxyRes, req, res) {
var prism = prismManager.get(req.originalUrl);
if (prism) {
prism.config.responseHandler(req, proxyRes, prism);
}
};
}
module.exports = HttpEvents;
;