allow specifying the hostname as the host, eg. host: 'localhost'

This commit is contained in:
Spencer Alger
2014-11-07 18:48:11 -07:00
parent 165b7d7986
commit 4c1db66521
2 changed files with 7 additions and 5 deletions

View File

@ -47,9 +47,10 @@ function Host(config, globalConfig) {
if (typeof config === 'string') {
var firstColon = config.indexOf(':');
var firstSlash = config.indexOf('/');
var portWithPath = firstColon < firstSlash;
var portNoPath = firstColon > -1 && firstSlash === -1;
if ((portWithPath || portNoPath) && !startsWithProtocolRE.test(config)) {
var noSlash = firstSlash === -1;
var portNoPath = firstColon > -1 && noSlash;
var portWithPath = !portNoPath && firstColon < firstSlash;
if ((noSlash || portNoPath || portWithPath) && !startsWithProtocolRE.test(config)) {
config = defaultProto + '//' + config;
}
config = _.pick(url.parse(config, false, true), urlParseFields);

View File

@ -71,8 +71,9 @@ describe('Host class', function () {
it('parses simple urls properly', function () {
var host;
host = new Host('elasticsearch');
expect(host.path).to.be('/elasticsearch');
host = new Host('localhost');
expect(host.host).to.be('localhost');
expect(host.path).to.be('');
host = new Host('/elasticsearch');
expect(host.path).to.be('/elasticsearch');