UNPKG

syslog-portal

Version:
80 lines 3.15 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; import { inject, injectable, postConstruct, preDestroy } from 'inversify'; import { createServer, } from 'node:http'; import { TYPES } from '../types.js'; let HealthMonitor = class HealthMonitor { _entities = new Map(); _expectedCheckInIntervals = new Map(); _entityCheckIn = new Map(); _log; _server; constructor(log) { this._log = log; } start() { this._log.info('Starting health ep server'); this._server = createServer(this.requestHandler); this._server.listen(8080, '0.0.0.0'); this._log.info('Finished starting health ep server'); return Promise.resolve(); } requestHandler(req, resp) { resp.writeHead(200); resp.end(); } async stop() { this._log.info('Closing health ep server'); if (this._server != null) { await new Promise((resolve, reject) => { this._server?.close((err) => { if (err) reject(err); resolve(null); }); }); } this._log.info('Finished closing health ep server'); } register(entityId, humanReadableName, expectedCheckInInterval) { this._entities.set(entityId, humanReadableName); this._expectedCheckInIntervals.set(entityId, expectedCheckInInterval); } unregister(entityId) { this._entities.delete(entityId); this._expectedCheckInIntervals.delete(entityId); this._entityCheckIn.delete(entityId); } kick(entityId) { this._entityCheckIn.set(entityId, Date.now()); } }; __decorate([ postConstruct(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], HealthMonitor.prototype, "start", null); __decorate([ preDestroy(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], HealthMonitor.prototype, "stop", null); HealthMonitor = __decorate([ injectable(), __param(0, inject(TYPES.Logger)), __metadata("design:paramtypes", [Object]) ], HealthMonitor); export { HealthMonitor }; //# sourceMappingURL=healthMonitor.js.map