UNPKG

renovate

Version:

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

44 lines (43 loc) 1.63 kB
import { isObject } from "@sindresorhus/is"; //#region lib/modules/versioning/rust-release-channel/util.ts /** * Compare two parsed toolchain objects for sorting. * * @returns negative if a < b, positive if a > b, 0 if equal */ function sortParsed(parsedA, parsedB) { const channelA = parsedA.channel; const channelB = parsedB.channel; const isANightly = channelA === "nightly"; const isBNightly = channelB === "nightly"; if (isANightly && !isBNightly) return 1; else if (!isANightly && isBNightly) return -1; if (isANightly && isBNightly && parsedA.date && parsedB.date) { const dateA = parsedA.date; const dateB = parsedB.date; if (dateA.year !== dateB.year) return dateA.year - dateB.year; else if (dateA.month !== dateB.month) return dateA.month - dateB.month; else if (dateA.day !== dateB.day) return dateA.day - dateB.day; return 0; } if (isObject(channelA) && isObject(channelB)) { if (channelA.major !== channelB.major) return channelA.major - channelB.major; if (channelA.minor !== channelB.minor) return channelA.minor - channelB.minor; const patchA = channelA.patch ?? 0; const patchB = channelB.patch ?? 0; if (patchA !== patchB) return patchA - patchB; const hasPreA = channelA.prerelease !== void 0; const hasPreB = channelB.prerelease !== void 0; if (hasPreA && !hasPreB) return -1; else if (!hasPreA && hasPreB) return 1; if (hasPreA && hasPreB) { const numA = channelA.prerelease.number ?? 0; const numB = channelB.prerelease.number ?? 0; if (numA !== numB) return numA - numB; } } return 0; } //#endregion export { sortParsed }; //# sourceMappingURL=util.js.map