| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- 'use strict';
 
- var URL = require('url-parse');
 
- var debug = function() {};
 
- if (process.env.NODE_ENV !== 'production') {
 
-   debug = require('debug')('sockjs-client:utils:url');
 
- }
 
- module.exports = {
 
-   getOrigin: function(url) {
 
-     if (!url) {
 
-       return null;
 
-     }
 
-     var p = new URL(url);
 
-     if (p.protocol === 'file:') {
 
-       return null;
 
-     }
 
-     var port = p.port;
 
-     if (!port) {
 
-       port = (p.protocol === 'https:') ? '443' : '80';
 
-     }
 
-     return p.protocol + '//' + p.hostname + ':' + port;
 
-   }
 
- , isOriginEqual: function(a, b) {
 
-     var res = this.getOrigin(a) === this.getOrigin(b);
 
-     debug('same', a, b, res);
 
-     return res;
 
-   }
 
- , isSchemeEqual: function(a, b) {
 
-     return (a.split(':')[0] === b.split(':')[0]);
 
-   }
 
- , addPath: function (url, path) {
 
-     var qs = url.split('?');
 
-     return qs[0] + path + (qs[1] ? '?' + qs[1] : '');
 
-   }
 
- , addQuery: function (url, q) {
 
-     return url + (url.indexOf('?') === -1 ? ('?' + q) : ('&' + q));
 
-   }
 
- , isLoopbackAddr: function (addr) {
 
-     return /^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(addr) || /^\[::1\]$/.test(addr);
 
-   }
 
- };
 
 
  |