UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

37 lines (36 loc) 1.39 kB
import { RegExpVersioningApi } from "../regex/index.js"; import { isEmptyArray, isNonEmptyArray, isNonEmptyStringAndNotWhitespace } from "@sindresorhus/is"; //#region lib/modules/versioning/nixpkgs/index.ts const id = "nixpkgs"; const api = class NixPkgsVersioning extends RegExpVersioningApi { static versionRegex = "^(?<prefix>(nixos|nixpkgs|release))-((?<major>\\d{2})\\.(?<minor>\\d{2})|unstable)(-(?<suffix>(small|aarch64|darwin)))?$"; constructor() { super(NixPkgsVersioning.versionRegex); } _parse(version) { const groups = this._config?.exec(version)?.groups; if (!groups) return null; const { prefix, major, minor, suffix } = groups; const release = []; if (major) release.push(Number.parseInt(major, 10)); if (minor) release.push(Number.parseInt(minor, 10)); return { release, compatibility: isNonEmptyStringAndNotWhitespace(suffix) ? `${prefix}-${suffix}` : prefix }; } isStable(version) { return isNonEmptyArray(this._parse(version)?.release); } _compare(version, other) { const left = this._parse(version); const right = this._parse(other); if (isEmptyArray(left?.release) && isEmptyArray(right?.release)) return 0; if (isEmptyArray(left?.release)) return 1; if (isEmptyArray(right?.release)) return -1; return super._compare(version, other); } }; //#endregion export { api as default, id }; //# sourceMappingURL=index.js.map