Files
blackroad-operating-system/scripts/checkHealth.ts
2025-11-21 00:26:41 -06:00

43 lines
1.1 KiB
TypeScript

import path from "path";
import fs from "fs";
import fetch from "node-fetch";
import { ServiceConfig } from "./types";
const servicesPath = path.join(__dirname, "..", "infra", "services.json");
function loadServices(): ServiceConfig[] {
const raw = fs.readFileSync(servicesPath, "utf-8");
return JSON.parse(raw) as ServiceConfig[];
}
async function checkService(service: ServiceConfig) {
const url = `https://${service.domain}${service.healthPath}`;
try {
const res = await fetch(url, { method: "GET" });
const statusText = res.statusText || "";
console.log(
`[OK] ${service.id.padEnd(8)} ${res.status} ${statusText} - ${url}`
);
} catch (err) {
console.log(
`[FAIL] ${service.id.padEnd(8)} - ${(err as Error).message} - ${url}`
);
}
}
async function main() {
const services = loadServices();
console.log("\n🌡 Checking health of all services:\n");
for (const svc of services) {
await checkService(svc);
}
console.log("\nDone.\n");
}
main().catch((err) => {
console.error(err);
process.exit(1);
});