@labnex/cli
Version:
CLI for Labnex, an AI-Powered Testing Automation Platform
100 lines • 4.11 kB
JavaScript
;
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