@casual-simulation/aux-vm-client
Version:
A set of utilities required to securely run an AUX as a client.
37 lines • 1.56 kB
JavaScript
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
*
* Copyright (c) 2019-2025 Casual Simulation, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
export function getFinalUrl(defaultHost, host) {
const url = new URL(defaultHost);
const override = host ? new URL(host) : null;
const finalUrl = override
? `${getFinalProtocol(url.protocol, override.protocol)}//${override.host}`
: defaultHost;
return finalUrl;
}
export function getFinalProtocol(defaultProtocol, overrideProtocol) {
for (let protocol of [defaultProtocol, overrideProtocol]) {
if (isSecureProtocol(protocol)) {
return protocol;
}
}
return overrideProtocol || defaultProtocol;
}
export function isSecureProtocol(protocol) {
return protocol === 'https:';
}
//# sourceMappingURL=UrlHelpers.js.map