1
import YAML from 'yaml';
4
export function roundValue(value: number | string | void, placeholder: boolean | void): number | string {
5
if (typeof value !== "number") {
6
return placeholder === false ? "" : "—";
8
const parsedValue = parseFloat(value.toString());
9
const sizes = ["", " K", " M", " G", " T", " P", " E", " Z", " Y"];
10
if (parsedValue === 0) {
14
while (Math.pow(1000, x + 1) < Math.abs(parsedValue)) {
17
let prefix = (parsedValue / Math.pow(1000, x)).toFixed(2).toString();
19
prefix = value.toFixed(2).toString();
22
while (prefix[prefix.length - (tailToCut + 1)] === "0") {
25
if (prefix[prefix.length - (tailToCut + 1)] === ".") {
28
return prefix.substring(0, prefix.length - tailToCut) + (sizes[x] || "");
31
export function getJSONContent(data: { [key: string]: any }): string {
32
return "data:text/plain;charset=utf-8," + encodeURIComponent(JSON.stringify(data, null, 2));
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));