UNPKG

@tehreet/conduit

Version:

LLM API gateway with intelligent routing, robust process management, and health monitoring

88 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.incrementReferenceCount = incrementReferenceCount; exports.decrementReferenceCount = decrementReferenceCount; exports.getReferenceCount = getReferenceCount; exports.isServiceRunning = isServiceRunning; exports.savePid = savePid; exports.cleanupPidFile = cleanupPidFile; exports.getServicePid = getServicePid; exports.getServiceInfo = getServiceInfo; const fs_1 = require("fs"); const constants_1 = require("../constants"); function incrementReferenceCount() { let count = 0; if ((0, fs_1.existsSync)(constants_1.REFERENCE_COUNT_FILE)) { count = parseInt((0, fs_1.readFileSync)(constants_1.REFERENCE_COUNT_FILE, 'utf-8')) || 0; } count++; (0, fs_1.writeFileSync)(constants_1.REFERENCE_COUNT_FILE, count.toString()); } function decrementReferenceCount() { let count = 0; if ((0, fs_1.existsSync)(constants_1.REFERENCE_COUNT_FILE)) { count = parseInt((0, fs_1.readFileSync)(constants_1.REFERENCE_COUNT_FILE, 'utf-8')) || 0; } count = Math.max(0, count - 1); (0, fs_1.writeFileSync)(constants_1.REFERENCE_COUNT_FILE, count.toString()); } function getReferenceCount() { if (!(0, fs_1.existsSync)(constants_1.REFERENCE_COUNT_FILE)) { return 0; } return parseInt((0, fs_1.readFileSync)(constants_1.REFERENCE_COUNT_FILE, 'utf-8')) || 0; } function isServiceRunning() { if (!(0, fs_1.existsSync)(constants_1.PID_FILE)) { return false; } try { const pid = parseInt((0, fs_1.readFileSync)(constants_1.PID_FILE, 'utf-8')); process.kill(pid, 0); return true; } catch (e) { // Process not running, clean up pid file cleanupPidFile(); return false; } } function savePid(pid) { (0, fs_1.writeFileSync)(constants_1.PID_FILE, pid.toString()); } function cleanupPidFile() { if ((0, fs_1.existsSync)(constants_1.PID_FILE)) { try { const fs = require('fs'); fs.unlinkSync(constants_1.PID_FILE); } catch (e) { // Ignore cleanup errors } } } function getServicePid() { if (!(0, fs_1.existsSync)(constants_1.PID_FILE)) { return null; } try { const pid = parseInt((0, fs_1.readFileSync)(constants_1.PID_FILE, 'utf-8')); return isNaN(pid) ? null : pid; } catch (e) { return null; } } function getServiceInfo() { const pid = getServicePid(); const running = isServiceRunning(); return { running, pid, port: 3456, endpoint: 'http://127.0.0.1:3456', pidFile: constants_1.PID_FILE, referenceCount: getReferenceCount(), }; } //# sourceMappingURL=processCheck.js.map