mirror of
https://github.com/http-party/node-http-proxy.git
synced 2025-12-08 20:59:18 +00:00
105 lines
2.2 KiB
JavaScript
105 lines
2.2 KiB
JavaScript
/*
|
|
* index.js: Top level include for node-http-proxy helpers
|
|
*
|
|
* (C) 2010 Nodejitsu Inc.
|
|
* MIT LICENCE
|
|
*
|
|
*/
|
|
|
|
var fs = require('fs'),
|
|
path = require('path');
|
|
|
|
var fixturesDir = path.join(__dirname, '..', 'fixtures');
|
|
|
|
//
|
|
// @https {Object}
|
|
// Returns the necessary `https` credentials.
|
|
//
|
|
Object.defineProperty(exports, 'https', {
|
|
get: function () {
|
|
delete this.https;
|
|
return this.https = {
|
|
key: fs.readFileSync(path.join(fixturesDir, 'agent2-key.pem'), 'utf8'),
|
|
cert: fs.readFileSync(path.join(fixturesDir, 'agent2-cert.pem'), 'utf8')
|
|
};
|
|
}
|
|
});
|
|
|
|
//
|
|
// @protocols {Object}
|
|
// Returns an object representing the desired protocols
|
|
// for the `proxy` and `target` server.
|
|
//
|
|
Object.defineProperty(exports, 'protocols', {
|
|
get: function () {
|
|
delete this.protocols;
|
|
return this.protocols = {
|
|
target: exports.argv.target || 'http',
|
|
proxy: exports.argv.proxy || 'http'
|
|
};
|
|
}
|
|
});
|
|
|
|
//
|
|
// @nextPort {number}
|
|
// Returns an auto-incrementing port for tests.
|
|
//
|
|
Object.defineProperty(exports, 'nextPort', {
|
|
get: function () {
|
|
var current = this.port || 9050;
|
|
this.port = current + 1;
|
|
return current;
|
|
}
|
|
});
|
|
|
|
//
|
|
// @nextPortPair {Object}
|
|
// Returns an auto-incrementing pair of ports for tests.
|
|
//
|
|
Object.defineProperty(exports, 'nextPortPair', {
|
|
get: function () {
|
|
return {
|
|
target: this.nextPort,
|
|
proxy: this.nextPort
|
|
};
|
|
}
|
|
});
|
|
|
|
//
|
|
// ### function describe(prefix)
|
|
// #### @prefix {string} Prefix to use before the description
|
|
//
|
|
// Returns a string representing the protocols that this suite
|
|
// is testing based on CLI arguments.
|
|
//
|
|
exports.describe = function (prefix, base) {
|
|
prefix = prefix || '';
|
|
base = base || 'http';
|
|
|
|
function protocol(endpoint) {
|
|
return exports.protocols[endpoint] === 'https'
|
|
? base + 's'
|
|
: base;
|
|
}
|
|
|
|
return [
|
|
'node-http-proxy',
|
|
prefix,
|
|
[
|
|
protocol('proxy'),
|
|
'-to-',
|
|
protocol('target')
|
|
].join('')
|
|
].filter(Boolean).join('/');
|
|
};
|
|
|
|
//
|
|
// Expose the CLI arguments
|
|
//
|
|
exports.argv = require('optimist').argv;
|
|
|
|
//
|
|
// Export additional helpers for `http` and `websockets`.
|
|
//
|
|
exports.http = require('./http');
|
|
exports.ws = require('./ws'); |