snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
This commit is contained in:
49
react/features/base/connection/utils.ts
Normal file
49
react/features/base/connection/utils.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Gets a {@link URL} without hash and query/search params from a specific
|
||||
* {@code URL}.
|
||||
*
|
||||
* @param {URL} url - The {@code URL} which may have hash and query/search
|
||||
* params.
|
||||
* @returns {URL}
|
||||
*/
|
||||
export function getURLWithoutParams(url: URL): URL {
|
||||
const { hash, search } = url;
|
||||
|
||||
if ((hash && hash.length > 1) || (search && search.length > 1)) {
|
||||
url = new URL(url.href); // eslint-disable-line no-param-reassign
|
||||
(url as Mutable<URL>).hash = '';
|
||||
url.search = '';
|
||||
|
||||
// XXX The implementation of URL at least on React Native appends ? and
|
||||
// # at the end of the href which is not desired.
|
||||
let { href } = url;
|
||||
|
||||
if (href) {
|
||||
href.endsWith('#') && (href = href.substring(0, href.length - 1));
|
||||
href.endsWith('?') && (href = href.substring(0, href.length - 1));
|
||||
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
url.href === href || (url = new URL(href));
|
||||
}
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a URL string without hash and query/search params from a specific
|
||||
* {@code URL}.
|
||||
*
|
||||
* @param {URL} url - The {@code URL} which may have hash and query/search
|
||||
* params.
|
||||
* @returns {string}
|
||||
*/
|
||||
export function getURLWithoutParamsNormalized(url: URL): string {
|
||||
const urlWithoutParams = getURLWithoutParams(url).href;
|
||||
|
||||
if (urlWithoutParams) {
|
||||
return urlWithoutParams.toLowerCase();
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
Reference in New Issue
Block a user