gitguide
Version:
AI-powered README generator for any project directory
57 lines • 2.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setApiKey = setApiKey;
const inquirer_1 = __importDefault(require("inquirer"));
const chalk_1 = __importDefault(require("chalk"));
const config_1 = require("../utils/config");
async function setApiKey() {
console.log(chalk_1.default.blue.bold('\n🔧 GitGuide Configuration\n'));
const currentConfig = await (0, config_1.getConfig)();
if (currentConfig.apiKey) {
console.log(chalk_1.default.green('✓ Current API key:'), chalk_1.default.gray('*'.repeat(20) + currentConfig.apiKey.slice(-8)));
const { shouldUpdate } = await inquirer_1.default.prompt([
{
type: 'confirm',
name: 'shouldUpdate',
message: 'Do you want to update your API key?',
default: false
}
]);
if (!shouldUpdate) {
console.log(chalk_1.default.blue('ℹ️ Configuration unchanged.'));
return;
}
}
console.log(chalk_1.default.white('Get your Gemini API key at:'), chalk_1.default.cyan('https://makersuite.google.com/app/apikey'));
console.log(chalk_1.default.gray('Your API key will be stored locally and never shared.\n'));
const { apiKey } = await inquirer_1.default.prompt([
{
type: 'password',
name: 'apiKey',
message: 'Enter your Gemini API key:',
validate: (input) => {
if (!input.trim()) {
return 'API key is required';
}
if (input.length < 20) {
return 'API key seems too short. Please check and try again.';
}
return true;
},
mask: '*'
}
]);
try {
await (0, config_1.saveConfig)({ apiKey: apiKey.trim() });
console.log(chalk_1.default.green('\n✅ API key saved successfully!'));
console.log(chalk_1.default.blue('ℹ️ You can now run'), chalk_1.default.cyan('gitguide generate'), chalk_1.default.blue('to create README files.'));
}
catch (error) {
console.error(chalk_1.default.red('\n❌ Failed to save API key:'), error);
throw error;
}
}
//# sourceMappingURL=config.js.map