renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
54 lines (53 loc) • 1.77 kB
JavaScript
import { regEx } from "../../../util/regex.js";
import { logger } from "../../../logger/index.js";
import { parseUrl } from "../../../util/url.js";
import api from "../../versioning/nuget/index.js";
//#region lib/modules/datasource/nuget/common.ts
const buildMetaRe = regEx(/\+.+$/g);
function removeBuildMeta(version) {
return version.replace(buildMetaRe, "");
}
const urlWhitespaceRe = regEx(/\s/g);
function massageUrl(url) {
if (url === null || url === void 0) return null;
let resultUrl = url;
resultUrl = resultUrl.replace(urlWhitespaceRe, "%20");
return resultUrl;
}
const protocolVersionRegExp = regEx(/#protocolVersion=(?<protocol>2|3)/);
function parseRegistryUrl(registryUrl) {
const parsedUrl = parseUrl(registryUrl);
if (!parsedUrl) {
logger.debug({ urL: registryUrl }, `nuget registry failure: can't parse ${registryUrl}`);
return {
feedUrl: registryUrl,
protocolVersion: null
};
}
let protocolVersion = 2;
const protocolVersionMatch = protocolVersionRegExp.exec(parsedUrl.hash)?.groups;
if (protocolVersionMatch) {
const { protocol } = protocolVersionMatch;
parsedUrl.hash = "";
protocolVersion = Number.parseInt(protocol, 10);
} else if (parsedUrl.pathname.endsWith(".json")) protocolVersion = 3;
return {
feedUrl: parsedUrl.href,
protocolVersion
};
}
/**
* Compare two versions. Return:
* - `1` if `a > b` or `b` is invalid
* - `-1` if `a < b` or `a` is invalid
* - `0` if `a == b` or both `a` and `b` are invalid
*/
function sortNugetVersions(a, b) {
if (api.isValid(a)) if (api.isValid(b)) return api.sortVersions(a, b);
else return 1;
else if (api.isValid(b)) return -1;
else return 0;
}
//#endregion
export { massageUrl, parseRegistryUrl, removeBuildMeta, sortNugetVersions };
//# sourceMappingURL=common.js.map