mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-12 05:31:41 +00:00
update
This commit is contained in:
75
node_modules/socket.io-client/lib/url.js
generated
vendored
Normal file
75
node_modules/socket.io-client/lib/url.js
generated
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var parseuri = require('parseuri');
|
||||
var debug = require('debug')('socket.io-client:url');
|
||||
|
||||
/**
|
||||
* Module exports.
|
||||
*/
|
||||
|
||||
module.exports = url;
|
||||
|
||||
/**
|
||||
* URL parser.
|
||||
*
|
||||
* @param {String} url
|
||||
* @param {Object} An object meant to mimic window.location.
|
||||
* Defaults to window.location.
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function url (uri, loc) {
|
||||
var obj = uri;
|
||||
|
||||
// default to window.location
|
||||
loc = loc || (typeof location !== 'undefined' && location);
|
||||
if (null == uri) uri = loc.protocol + '//' + loc.host;
|
||||
|
||||
// relative path support
|
||||
if ('string' === typeof uri) {
|
||||
if ('/' === uri.charAt(0)) {
|
||||
if ('/' === uri.charAt(1)) {
|
||||
uri = loc.protocol + uri;
|
||||
} else {
|
||||
uri = loc.host + uri;
|
||||
}
|
||||
}
|
||||
|
||||
if (!/^(https?|wss?):\/\//.test(uri)) {
|
||||
debug('protocol-less url %s', uri);
|
||||
if ('undefined' !== typeof loc) {
|
||||
uri = loc.protocol + '//' + uri;
|
||||
} else {
|
||||
uri = 'https://' + uri;
|
||||
}
|
||||
}
|
||||
|
||||
// parse
|
||||
debug('parse %s', uri);
|
||||
obj = parseuri(uri);
|
||||
}
|
||||
|
||||
// make sure we treat `localhost:80` and `localhost` equally
|
||||
if (!obj.port) {
|
||||
if (/^(http|ws)$/.test(obj.protocol)) {
|
||||
obj.port = '80';
|
||||
} else if (/^(http|ws)s$/.test(obj.protocol)) {
|
||||
obj.port = '443';
|
||||
}
|
||||
}
|
||||
|
||||
obj.path = obj.path || '/';
|
||||
|
||||
var ipv6 = obj.host.indexOf(':') !== -1;
|
||||
var host = ipv6 ? '[' + obj.host + ']' : obj.host;
|
||||
|
||||
// define unique id
|
||||
obj.id = obj.protocol + '://' + host + ':' + obj.port;
|
||||
// define href
|
||||
obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));
|
||||
|
||||
return obj;
|
||||
}
|
Reference in New Issue
Block a user