UNPKG

pr-sizewise

Version:

A CLI tool that measures and reports pull request sizes for GitHub and GitLab, helping teams maintain manageable code changes.

80 lines 3.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.runConfigWizard = runConfigWizard; const inquirer_1 = __importDefault(require("inquirer")); const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const index_1 = require("../index"); const logger_1 = require("../utils/logger"); const logger = (0, logger_1.createDefaultLogger)(); async function runConfigWizard() { logger.blank(); logger.header('Welcome to SizeWise Configuration Wizard'); logger.dim('This wizard will help you create a customized configuration file for your project.'); logger.blank(); try { const answers = await inquirer_1.default.prompt([ { type: 'list', name: 'platform', message: 'Which platform are you using?', choices: [ { name: 'GitHub', value: 'github' }, { name: 'GitLab', value: 'gitlab' }, ], }, { type: 'confirm', name: 'enableComments', message: 'Would you like SizeWise to comment on pull/merge requests?', default: true, }, { type: 'confirm', name: 'enableLabels', message: 'Would you like SizeWise to add size labels to pull/merge requests?', default: true, }, ]); // Generate configuration const config = { ...index_1.DEFAULT_CONFIG, comment: { enabled: answers.enableComments, template: '🔍 **Pull Request Size:** {size}', updateExisting: true, }, label: { enabled: answers.enableLabels, prefix: 'size:', }, }; // Determine config file location based on platform const configPath = path_1.default.resolve(process.cwd(), `.${answers.platform}/sizewise.config.json`); const configDir = path_1.default.dirname(configPath); if (!fs_1.default.existsSync(configDir)) { fs_1.default.mkdirSync(configDir, { recursive: true }); } // Write configuration file fs_1.default.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf8'); // Success message logger.blank(); logger.header('Configuration Complete'); logger.success('Configuration file created successfully!'); logger.info(`Location: ${configPath}`); logger.blank(); logger.info('You can now run SizeWise with your custom configuration:'); logger.dim('npx sizewise'); logger.blank(); } catch (error) { logger.blank(); logger.logError('Error creating configuration', error); logger.blank(); process.exit(1); } } //# sourceMappingURL=wizard.js.map