npm-fetch-changelog
Version:
fetch the changelog for an npm package from GitHub
29 lines (28 loc) • 934 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = parseChangelog;
var versionRx = "\\[?v?\\d+\\.\\d+(\\.\\d+(-[-a-z0-9.]+)?)?\\]?";
function parseChangelog(text) {
var result = {};
var versionHeaderRx = new RegExp("^#+\\s+(".concat(versionRx, ")(.*)$|^(").concat(versionRx, ")(.*)(\r\n?|\n)(=+|-+)"), 'mg');
var match;
var start = 0;
var release;
while (match = versionHeaderRx.exec(text)) {
var rawVersion = match[1] || match[5];
var version = rawVersion.replace(/\[|\]/g, '');
if (!match[2] && !match[6]) version += '.0';
if (release) release.body = text.substring(start, match.index).trim();
release = {
version: version,
header: match[0]
};
result[version] = release;
start = match.index + match[0].length;
}
if (release) release.body = text.substring(start).trim();
return result;
}
module.exports = exports.default;