@holographxyz/cli
Version:
Holograph operator CLI
38 lines (37 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const node_http_1 = tslib_1.__importDefault(require("node:http"));
class HealthCheckServer {
static _instance;
server;
constructor(options) {
const { networkMonitor, healthCheckPort } = options;
const host = '0.0.0.0';
const port = healthCheckPort ? healthCheckPort : 6000;
this.server = node_http_1.default.createServer((req, res) => {
res.setHeader('Content-Type', 'application/json');
if (req.url === '/healthcheck') {
const providerStatus = networkMonitor.getProviderStatus();
res.writeHead(200);
res.end(JSON.stringify({ status: 'alive', providerStatus }));
}
else {
res.writeHead(200);
res.end(JSON.stringify({ hello: 'evil person' }));
}
});
this.server.listen(port, host, () => {
console.log(`Server is running on http://${host}:${port}`);
});
}
static getInstance(options) {
if (!HealthCheckServer._instance)
HealthCheckServer._instance = new HealthCheckServer(options);
return HealthCheckServer._instance;
}
}
const healthCheckHook = async function (options) {
HealthCheckServer.getInstance(options);
};
exports.default = healthCheckHook;