import * as os from "node:os"; import si from "systeminformation"; import define from "../define.js"; import { fetchMeta } from "../../../misc/fetch-meta.js"; export const meta = { requireCredential: false, requireCredentialPrivateMode: true, allowGet: true, cacheSec: 30, tags: [ "meta" ] }; export const paramDef = { type: "object", properties: {}, required: [] }; export default define(meta, paramDef, async ()=>{ const memStats = await si.mem(); const fsStats = await si.fsSize(); let fsIndex = 0; // Get the first index of fs sizes that are actualy used. for (const [i, stat] of fsStats.entries()){ if (stat.rw === true && stat.used > 0) { fsIndex = i; break; } } const instanceMeta = await fetchMeta(); if (!instanceMeta.enableServerMachineStats) { return { machine: "Not specified", cpu: { model: "Not specified", cores: 0 }, mem: { total: 0 }, fs: { total: 0, used: 0 } }; } return { machine: os.hostname(), cpu: { model: os.cpus()[0].model, cores: os.cpus().length }, mem: { total: memStats.total }, fs: { total: fsStats[fsIndex].size, used: fsStats[fsIndex].used } }; });