moira-web

Форк
0
/
helpers.js 
41 строка · 1.6 Кб
1
import YAML from 'yaml';
2

3
// @flow
4
export function roundValue(value: number | string | void, placeholder: boolean | void): number | string {
5
    if (typeof value !== "number") {
6
        return placeholder === false ? "" : "—";
7
    }
8
    const parsedValue = parseFloat(value.toString());
9
    const sizes = ["", " K", " M", " G", " T", " P", " E", " Z", " Y"];
10
    if (parsedValue === 0) {
11
        return "0";
12
    }
13
    let x = 0;
14
    while (Math.pow(1000, x + 1) < Math.abs(parsedValue)) {
15
        x++;
16
    }
17
    let prefix = (parsedValue / Math.pow(1000, x)).toFixed(2).toString();
18
    if (x === 0) {
19
        prefix = value.toFixed(2).toString();
20
    }
21
    let tailToCut = 0;
22
    while (prefix[prefix.length - (tailToCut + 1)] === "0") {
23
        tailToCut++;
24
    }
25
    if (prefix[prefix.length - (tailToCut + 1)] === ".") {
26
        tailToCut++;
27
    }
28
    return prefix.substring(0, prefix.length - tailToCut) + (sizes[x] || "");
29
}
30

31
export function getJSONContent(data: { [key: string]: any }): string {
32
    return "data:text/plain;charset=utf-8," + encodeURIComponent(JSON.stringify(data, null, 2));
33
}
34

35
export function getYAMLContent(data: { [key: string]: any }): string {
36
    const excludedKeys = ['id', 'sched', 'patterns', 'has_escalations', 'throttling'];
37
    const filteredData = Object.entries(data)
38
        .filter(([key, value]) => !excludedKeys.includes(key) && value !== null && value !== '')   
39
        .reduce((acc, [key, value]) => {acc[key] = value; return acc;}, {});
40
    return "data:text/plain;charset=utf-8," + encodeURIComponent(YAML.stringify(filteredData, null, 2));
41
}
42

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

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

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

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