UNPKG

ai-commit-report-generator-cli

Version:

An AI-powered CLI tool that generates weekly reports from your Git activity

77 lines (76 loc) 3.26 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.promptForScanFilteringOptions = promptForScanFilteringOptions; const inquirer_1 = __importDefault(require("inquirer")); const date_fns_1 = require("date-fns"); const commitFetcher_1 = require("./commitFetcher"); function promptForScanFilteringOptions(repoPath) { return __awaiter(this, void 0, void 0, function* () { // First get the time unit and amount const { timeUnit } = yield inquirer_1.default.prompt([ { type: 'list', name: 'timeUnit', message: 'Do you want to specify the interval in days or weeks?', choices: ['days', 'weeks'] } ]); const { amount } = yield inquirer_1.default.prompt([ { type: 'number', name: 'amount', message: `How many ${timeUnit} ago do you want to start from?`, validate: (value) => { if (value && value > 0) return true; return 'Please enter a number greater than 0'; } } ]); const today = new Date(); const startDate = timeUnit === 'weeks' ? (0, date_fns_1.subWeeks)(today, amount) : (0, date_fns_1.subDays)(today, amount); // Get list of authors and prompt for selection const authors = yield (0, commitFetcher_1.getUniqueAuthors)(repoPath); const { filterByAuthor } = yield inquirer_1.default.prompt([ { type: 'confirm', name: 'filterByAuthor', message: 'Do you want to filter commits by author?', default: false } ]); let username; if (filterByAuthor && authors.length > 0) { const { selectedAuthor } = yield inquirer_1.default.prompt([ { type: 'list', name: 'selectedAuthor', message: 'Select an author:', choices: ['All Authors', ...authors], } ]); if (selectedAuthor !== 'All Authors') { username = selectedAuthor; } } return { dateRange: { startDate, endDate: today }, username }; }); }