UNPKG

@labnex/cli

Version:

CLI for Labnex, an AI-Powered Testing Automation Platform

100 lines 4.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupConfigCommands = setupConfigCommands; const commander_1 = require("commander"); const chalk_1 = __importDefault(require("chalk")); const config_1 = require("../utils/config"); function setupConfigCommands() { const config = new commander_1.Command('config'); config.description('Manage Labnex CLI configuration settings (API URL, verbosity, etc.).'); // Set configuration value config .command('set <key> <value>') .description('Set a specific configuration key to a new value (e.g., apiUrl).') .action(async (key, value) => { try { const allowedKeys = ['apiUrl', 'verbose']; if (!allowedKeys.includes(key)) { console.error(chalk_1.default.red(`Invalid key: ${key}`)); console.error(chalk_1.default.gray(`Allowed keys: ${allowedKeys.join(', ')}`)); process.exit(1); } const updates = {}; if (key === 'verbose') { updates.verbose = value.toLowerCase() === 'true'; } else { updates[key] = value; } await (0, config_1.updateConfig)(updates); console.log(chalk_1.default.green(`✓ Set ${key} = ${value}`)); } catch (error) { console.error(chalk_1.default.red(`Failed to set config: ${error.message}`)); process.exit(1); } }); // Get configuration value config .command('get [key]') .description('Display the current value of a specific key or all configurations.') .action(async (key) => { try { const currentConfig = await (0, config_1.loadConfig)(); if (key) { console.log(chalk_1.default.blue(`${key}: ${currentConfig[key] || 'not set'}`)); } else { console.log(chalk_1.default.blue('Current Configuration:')); console.log(chalk_1.default.gray('─'.repeat(30))); Object.entries(currentConfig).forEach(([k, v]) => { console.log(`${k}: ${v}`); }); console.log(chalk_1.default.gray('─'.repeat(30))); console.log(chalk_1.default.gray(`Config file: ${(0, config_1.getConfigPath)()}`)); } } catch (error) { console.error(chalk_1.default.red(`Failed to get config: ${error.message}`)); process.exit(1); } }); // Reset configuration config .command('reset') .description('Reset all Labnex CLI configurations to their default values.') .action(async () => { try { await (0, config_1.clearConfig)(); console.log(chalk_1.default.green('✓ Configuration reset to defaults')); } catch (error) { console.error(chalk_1.default.red(`Failed to reset config: ${error.message}`)); process.exit(1); } }); // Setup production configuration config .command('setup-production') .description('Quickly configure the CLI to use the production Labnex API endpoint.') .action(async () => { try { await (0, config_1.updateConfig)({ apiUrl: 'https://labnex-backend.onrender.com/api', verbose: false }); console.log(chalk_1.default.green('✓ CLI configured for production')); console.log(chalk_1.default.blue(' API URL: https://labnex-backend.onrender.com/api')); console.log(chalk_1.default.gray(' You can now run: labnex auth login')); } catch (error) { console.error(chalk_1.default.red(`Failed to setup production config: ${error.message}`)); process.exit(1); } }); return config; } //# sourceMappingURL=config.js.map