1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- '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));
- }
- };
|