argo-cd

Форк
0
/
utils.ts 
36 строк · 1.2 Кб
1
export function hashCode(str: string) {
2
    let hash = 0;
3
    for (let i = 0; i < str.length; i++) {
4
        // tslint:disable-next-line:no-bitwise
5
        hash = ~~((hash << 5) - hash + str.charCodeAt(i));
6
    }
7
    return hash;
8
}
9

10
// concatMaps merges two maps. Later args take precedence where there's a key conflict.
11
export function concatMaps(...maps: (Map<string, string> | null)[]): Map<string, string> {
12
    const newMap = new Map<string, string>();
13
    for (const map of maps) {
14
        if (map) {
15
            for (const entry of Object.entries(map)) {
16
                newMap.set(entry[0], entry[1]);
17
            }
18
        }
19
    }
20
    return newMap;
21
}
22

23
export function isValidURL(url: string): boolean {
24
    try {
25
        const parsedUrl = new URL(url);
26
        return parsedUrl.protocol !== 'javascript:' && parsedUrl.protocol !== 'data:' && parsedUrl.protocol !== 'vbscript:';
27
    } catch (TypeError) {
28
        try {
29
            // Try parsing as a relative URL.
30
            const parsedUrl = new URL(url, window.location.origin);
31
            return parsedUrl.protocol !== 'javascript:' && parsedUrl.protocol !== 'data:' && parsedUrl.protocol !== 'vbscript:';
32
        } catch (TypeError) {
33
            return false;
34
        }
35
    }
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.