keep-a-changelog
Version:
Node package to parse and generate changelogs following the [keepachangelog](https://keepachangelog.com/) format.
61 lines (60 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.settings = void 0;
exports.default = getSettingsForURL;
/**
* Temporary URLPattern shim
* @see https://github.com/denoland/dnt/issues/336
*/
class URLPatternShim {
pattern;
constructor(pattern) {
if (typeof pattern === "string") {
pattern = pattern.replace(/\*/g, ".*");
pattern = new RegExp(`^${pattern}$`);
}
this.pattern = pattern;
}
test(url) {
return this.pattern.test(url);
}
}
function getSettingsForURL(url) {
return exports.settings.find((settings) => settings.pattern.test(url));
}
exports.settings = [
{
pattern: new URLPatternShim("https://github.com/*"),
head: "HEAD",
tagLink(url, tag, previous) {
if (!previous) {
return `${url}/releases/tag/${tag}`;
}
return `${url}/compare/${previous}...${tag}`;
},
},
{
pattern: new URLPatternShim("https://gitlab.*/*"),
head: "master",
tagLink(url, tag, previous) {
if (!previous) {
return `${url}/-/tags/${tag}`;
}
return `${url}/-/compare/${previous}...${tag}`;
},
},
{
pattern: new URLPatternShim("https://dev.azure.com/*"),
head: "master",
tagLink(url, tag, previous, head) {
if (!previous) {
return `${url}?version=GT${tag}`;
}
let tagPrefix = "GT";
if (tag === head) {
tagPrefix = "GB";
}
return `${url}/branchCompare?baseVersion=GT${previous}&targetVersion=${tagPrefix}${tag}`;
},
},
];