react-native-app-starter
Version:
A React Native Template.
53 lines • 1.71 kB
JavaScript
;
/**
* Version comparison utilities
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isStaticVersion = exports.compareVersions = void 0;
/**
* Compares semantic versions
* @param version1 - First version to compare
* @param version2 - Second version to compare
* @returns -1 if version1 < version2, 0 if equal, 1 if version1 > version2
*/
const compareVersions = (version1, version2) => {
// Remove any non-numeric prefixes (like ^, ~, etc.)
const clean1 = version1.replace(/^[^0-9]*/, "");
const clean2 = version2.replace(/^[^0-9]*/, "");
// Handle invalid versions
if (!clean1 || !clean2) {
return 0;
}
const parts1 = clean1.split(".").map((part) => {
const num = parseInt(part, 10);
return isNaN(num) ? 0 : num;
});
const parts2 = clean2.split(".").map((part) => {
const num = parseInt(part, 10);
return isNaN(num) ? 0 : num;
});
const maxLength = Math.max(parts1.length, parts2.length);
for (let i = 0; i < maxLength; i++) {
const part1 = parts1[i] || 0;
const part2 = parts2[i] || 0;
if (part1 > part2)
return 1;
if (part1 < part2)
return -1;
}
return 0;
};
exports.compareVersions = compareVersions;
/**
* Checks if a version is static (doesn't have ^, ~, etc.)
* @param version - Version string to check
* @returns True if static version
*/
const isStaticVersion = (version) => {
return (/^[0-9]/.test(version) &&
!version.includes("^") &&
!version.includes("~") &&
!version.includes("*"));
};
exports.isStaticVersion = isStaticVersion;
//# sourceMappingURL=version.js.map