UNPKG

keep-a-changelog

Version:

Parse and generate changelogs following the [keepachangelog](https://keepachangelog.com/) format.

67 lines (66 loc) 1.93 kB
/** * 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); } } export default function getSettingsForURL(url) { return settings.find((settings) => settings.pattern.test(url)); } export const 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://bitbucket.org/*"), head: "master", // or main? tagLink(url, tag, previous) { if (!previous) { return `${url}/src/${tag}`; } return `${url}/branches/compare/${tag}%0D${previous}`; }, }, { 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}`; }, }, ];