38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "getSocketUrl", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return getSocketUrl;
|
|
}
|
|
});
|
|
const _normalizedassetprefix = require("../../../../shared/lib/normalized-asset-prefix");
|
|
function getSocketProtocol(assetPrefix) {
|
|
let protocol = window.location.protocol;
|
|
try {
|
|
// assetPrefix is a url
|
|
protocol = new URL(assetPrefix).protocol;
|
|
} catch (e) {}
|
|
return protocol === 'http:' ? 'ws:' : 'wss:';
|
|
}
|
|
function getSocketUrl(assetPrefix) {
|
|
const prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix);
|
|
const protocol = getSocketProtocol(assetPrefix || '');
|
|
if (URL.canParse(prefix)) {
|
|
// since normalized asset prefix is ensured to be a URL format,
|
|
// we can safely replace the protocol
|
|
return prefix.replace(/^http/, 'ws');
|
|
}
|
|
const { hostname, port } = window.location;
|
|
return protocol + "//" + hostname + (port ? ":" + port : '') + prefix;
|
|
}
|
|
|
|
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', { value: true });
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
|
|
//# sourceMappingURL=get-socket-url.js.map
|