UNPKG

caravan-x

Version:

A terminal-based utility for managing Caravan multisig wallets in regtest mode. This tool simplifies development and testing with Caravan by providing an easy-to-use interface

70 lines (69 loc) 2.37 kB
"use strict"; /** * Scenario Commands for Caravan-X */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScenarioCommands = void 0; const prompts_1 = require("@inquirer/prompts"); const terminal_1 = require("../utils/terminal"); const cli_table3_1 = __importDefault(require("cli-table3")); class ScenarioCommands { constructor(scenarioService) { this.scenarioService = scenarioService; } async showScenarioMenu() { (0, terminal_1.displayCommandTitle)("Test Scenarios"); const action = await (0, prompts_1.select)({ message: "What would you like to do?", choices: [ { name: "📋 List Scenarios", value: "list" }, { name: "🎬 Apply Scenario", value: "apply" }, { name: "🔙 Back", value: "back" }, ], }); switch (action) { case "list": await this.listScenarios(); break; case "apply": await this.applyScenario(); break; case "back": return; } if (action !== "back") { await this.showScenarioMenu(); } } async listScenarios() { const scenarios = await this.scenarioService.listScenarios(); const table = new cli_table3_1.default({ head: ["Name", "Description", "Block Height"], colWidths: [25, 50, 15], }); for (const scenario of scenarios) { table.push([ scenario.name, scenario.description || "", scenario.blockHeight, ]); } console.log("\n" + table.toString()); } async applyScenario() { const scenarios = await this.scenarioService.listScenarios(); const scenarioId = await (0, prompts_1.select)({ message: "Select scenario to apply:", choices: scenarios.map((s) => ({ name: s.name, value: s.id, description: s.description, })), }); await this.scenarioService.applyScenario(scenarioId); } } exports.ScenarioCommands = ScenarioCommands;