UNPKG

appcenter-cli

Version:

Command line tool for Visual Studio App Center

53 lines (52 loc) 1.67 kB
"use strict"; // From appcenter testCloud utils Object.defineProperty(exports, "__esModule", { value: true }); exports.CompareVersionNumbers = void 0; /** * Compare version numbers. * * @export * @class CompareVersionNumbers */ var CompareVersionNumbers; (function (CompareVersionNumbers) { const regExStripAZ = /[^\.0-9]/g; const regExStrip0 = /(\.0+)+$/; /** * Converts a version number string into an array of numbers. */ const getSegments = (version) => { return version.replace(regExStripAZ, "").replace(regExStrip0, "").split(".").map(Number); }; /** * Finds the sorting difference between two version number arrays. */ const getDiff = (pre, pos) => { const segmentsA = getSegments(pre); const segmentsB = getSegments(pos); let diff; let i; const minLength = Math.min(segmentsA.length, segmentsB.length); for (i = 0; i < minLength; i++) { diff = segmentsA[i] - segmentsB[i]; if (diff) { return diff; } } return segmentsA.length - segmentsB.length; }; /** * Compares version numbers in descending order. */ function compareDesc(versionA, versionB) { return getDiff(versionB, versionA); } CompareVersionNumbers.compareDesc = compareDesc; /** * Compares version numbers in ascending order. */ function compareAsc(versionA, versionB) { return getDiff(versionA, versionB); } CompareVersionNumbers.compareAsc = compareAsc; })(CompareVersionNumbers = exports.CompareVersionNumbers || (exports.CompareVersionNumbers = {}));