UNPKG

@starship-ci/client

Version:
110 lines (109 loc) 3.72 kB
"use strict"; 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 };