Files
console-dev/app/lib/finance-resource-chart.js
T
2026-11-06 00:04:38 +08:00

42 lines
1.3 KiB
JavaScript

function e(e) {
if (typeof e != `number` && (typeof e != `string` || !e.trim())) return null;
let t = Number(e);
return Number.isFinite(t) ? t : null;
}
function t(t, n) {
let r = t.list ?? [],
i = t.label ?? [],
a = i.findIndex((e) => /已用|使用|used|usage|utilization/i.test(e)),
o = (t) => {
let n = e(t);
return n === null
? null
: Number(Math.min(100, Math.max(0, n)).toFixed(2));
},
s = (e) => e.map((e) => String(e.time ?? ``).slice(11, 16));
if (n === `cpu` || /%|percent/i.test(t.unit ?? ``)) {
let e = r[n === `memory` && a >= 0 ? a : 0] ?? [];
return {
labels: s(e),
data: e.map((e) => o(e.value)),
};
}
let c = i.findIndex((e) => /总|total|allocated/i.test(e)),
l = c >= 0 ? c : 0,
u = i.findIndex((e) => /空闲|可用|free|available/i.test(e)),
d = a >= 0 ? a : u >= 0 ? u : 1,
f = r[l] ?? [],
p = new Map((r[d] ?? []).map((e) => [String(e.time ?? ``), e.value]));
return {
labels: s(f),
data: f.map((t) => {
let n = e(t.value),
r = t.time ? e(p.get(t.time)) : null;
if (l === d || n === null || n <= 0 || r === null || r < 0) return null;
let i = a < 0 && u >= 0 ? n - r : r;
return o((i / n) * 100);
}),
};
}
export { t as n, e as t };