pr-sizewise
Version:
A CLI tool that measures and reports pull request sizes for GitHub and GitLab, helping teams maintain manageable code changes.
34 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDiff = parseDiff;
exports.globToRegex = globToRegex;
/**
* Parses a git diff string and counts the number of lines added and removed.
* Ignores diff metadata lines (like @@ and +++ lines).
*/
function parseDiff(diff) {
const lines = diff.split('\n');
let additions = 0;
let deletions = 0;
for (const line of lines) {
if (line.startsWith('+') && !line.startsWith('+++')) {
additions++;
}
else if (line.startsWith('-') && !line.startsWith('---')) {
deletions++;
}
}
return { additions, deletions };
}
/**
* Converts a glob pattern to a RegExp object.
* Handles common glob patterns like * and ?.
*/
function globToRegex(pattern) {
const regexStr = pattern
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape special regex chars
.replace(/\*/g, '.*') // Convert * to .*
.replace(/\?/g, '.'); // Convert ? to .
return new RegExp(regexStr);
}
//# sourceMappingURL=diff-parser.js.map