@starship-ci/client
Version:
Starship CI Client
110 lines (109 loc) • 3.72 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.relayerVerifiers = exports.verifyRelayerExposer = exports.verifyRelayerRest = void 0;
const axios_1 = __importDefault(require("axios"));
const utils_1 = require("../utils");
const verifyRelayerRest = async (relayer) => {
const port = relayer.ports?.rest;
const result = {
service: `relayer-${relayer.name}`,
endpoint: 'rest',
status: 'failure'
};
if (!port) {
result.status = 'skipped';
result.error = 'Port not found';
return result;
}
try {
const response = await axios_1.default.get(`http://localhost:${port}/status`);
result.details = response.data;
if (response.status !== 200) {
result.error = 'Failed to get relayer status';
return result;
}
if (response.data.connections && response.data.connections.length > 0) {
result.status = 'success';
result.message = 'Relayer has active connections';
return result;
}
result.status = 'failure';
result.error = 'No active connections found';
return result;
}
catch (error) {
if (axios_1.default.isAxiosError(error)) {
if (error.response?.status === 404) {
result.error = 'Relayer endpoint not found';
}
else if (error.code === 'ECONNREFUSED') {
result.error = 'Relayer service is not running';
}
else {
result.error = (0, utils_1.handleAxiosError)(error);
}
}
else {
result.error = 'Unknown error occurred';
}
return result;
}
};
exports.verifyRelayerRest = verifyRelayerRest;
const verifyRelayerExposer = async (relayer) => {
const port = relayer.ports?.exposer;
const result = {
service: `relayer-${relayer.name}`,
endpoint: 'exposer',
status: 'failure'
};
if (!port) {
result.status = 'skipped';
result.error = 'Port not found';
return result;
}
try {
const response = await axios_1.default.get(`http://localhost:${port}/config`);
result.details = response.data;
if (response.status !== 200) {
result.error = 'Failed to get relayer config';
return result;
}
if (response.data && response.data.connections) {
result.status = 'success';
result.message = 'Relayer config is valid';
return result;
}
result.status = 'failure';
result.error = 'Invalid relayer config';
return result;
}
catch (error) {
if (axios_1.default.isAxiosError(error)) {
if (error.response?.status === 404) {
result.error = 'Relayer exposer endpoint not found';
}
else if (error.response?.status === 500) {
result.error = 'Relayer exposer service error';
}
else if (error.code === 'ECONNREFUSED') {
result.error = 'Relayer exposer service is not running';
}
else {
result.error = (0, utils_1.handleAxiosError)(error);
}
}
else {
result.error = 'Unknown error occurred';
}
return result;
}
};
exports.verifyRelayerExposer = verifyRelayerExposer;
exports.relayerVerifiers = {
rest: exports.verifyRelayerRest,
exposer: exports.verifyRelayerExposer
};