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
JavaScript
;
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
};
});
}