UNPKG

@holographxyz/cli

Version:
38 lines (37 loc) 1.42 kB
"use strict"; 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;