UNPKG

git-contributor-stats

Version:

CLI to compute contributor and repository statistics from a Git repository (commits, lines added/deleted, frequency, heatmap, bus-factor), with filters and multiple output formats.

51 lines (50 loc) 1.66 kB
import { e as printCSV, f as printTable } from "../chunks/analytics-SL4YC1kG.mjs"; import { d as parseTopStatsMetrics, h as formatTopStatsLines } from "../chunks/utils-CFufYn8A.mjs"; import "node:fs"; import "node:path"; function handleStdoutOutput(final, opts = {}) { const stdoutWantsJSON = opts.json || String(opts.format || "").toLowerCase() === "json"; const stdoutWantsCSV = String(opts.format || "").toLowerCase() === "csv"; const labelBy = final.basic?.labelBy || opts.labelBy || "name"; if (stdoutWantsJSON) { console.log(JSON.stringify(final, null, 2)); return; } const csvContributors = final.topContributors.map((tc) => ({ key: tc.email ?? tc.name ?? "", name: tc.name ?? "", emails: tc.email ? [tc.email] : [], commits: tc.commits, additions: tc.added, deletions: tc.deleted, changes: tc.changes, firstCommitDate: void 0, lastCommitDate: void 0 })); if (stdoutWantsCSV) { printCSV(csvContributors, labelBy); return; } if (opts.topStats && opts.topStats.length > 0) { console.log("Top stats:"); const topStatsMetrics = parseTopStatsMetrics(opts.topStats); const topStatsRecord = {}; if (final.topStats) { for (const key of Object.keys(final.topStats)) { const value = final.topStats[key]; if (value) { topStatsRecord[key] = value; } } } for (const l of formatTopStatsLines(topStatsRecord, topStatsMetrics)) { console.log(`- ${l}`); } console.log(""); } printTable(csvContributors, final.basic.meta, labelBy); } export { handleStdoutOutput as h }; //# sourceMappingURL=output.mjs.map