@tehreet/conduit
Version:
LLM API gateway with intelligent routing, robust process management, and health monitoring
88 lines • 2.77 kB
JavaScript
;
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