core/probes/system.probe.ts
core/probes/system.probe.ts is a file in Bane's Lab Deploy. 46 lines of code and 12 definitions.
import {
BYTES_PER_GB,
DECIMALS,
SECONDS_PER_DAY,
SECONDS_PER_HOUR,
} from "#configuration/constants/deployment.constants";
import {
CORES_SUFFIX,
CPU_LABEL,
DAY_SUFFIX,
GIGABYTE,
HOUR_SUFFIX,
MEMORY_LABEL,
NODE_LABEL,
OS_LABEL,
UNKNOWN,
UPTIME_LABEL,
} from "#configuration/strings/notification.strings";
import { arch, cpus, release, totalmem, type, uptime } from "node:os";
import { bullet, code, lines } from "#core/converters/markdown.converter";
const processor = function processor(): string {
const cores = cpus();
const [first] = cores;
return first === undefined ? UNKNOWN : `${first.model} (${String(cores.length)}${CORES_SUFFIX}`;
};
const runningFor = function runningFor(): string {
const seconds = uptime();
const days = Math.floor(seconds / SECONDS_PER_DAY);
const hours = Math.floor((seconds % SECONDS_PER_DAY) / SECONDS_PER_HOUR);
return String(days) + DAY_SUFFIX + String(hours) + HOUR_SUFFIX;
};
const entry = function entry(label: string, value: string): string {
return bullet(label, code(value));
};
export const describeSystem = function describeSystem(): string {
const platform = `${type()} ${release()} ${arch()}`;
const memory = (totalmem() / BYTES_PER_GB).toFixed(DECIMALS) + GIGABYTE;
const entries = [
entry(OS_LABEL, platform),
entry(NODE_LABEL, process.version),
entry(CPU_LABEL, processor()),
entry(MEMORY_LABEL, memory),
entry(UPTIME_LABEL, runningFor()),
];
return lines(entries);
};