UNPKG

@remotion/install-whisper-cpp

Version:

Helpers for installing and using Whisper.cpp

39 lines (38 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compareVersions = compareVersions; /** * Compares two version strings. * * @param version1 - The first version string. * @param version2 - The second version string. * @returns 1 if version1 > version2, -1 if version1 < version2, 0 if they are equal. * @throws {Error} If either version is not a valid string or has an invalid format. */ function compareVersions(version1, version2) { const parseVersion = (version) => { const parts = version.split('.').map((part) => Number(part)); if (parts.some(isNaN)) { throw new Error('Invalid version format. Expected x.x.x'); } return parts; }; if (typeof version1 !== 'string' || typeof version2 !== 'string') { throw new Error('Both inputs should be strings. Expected x.x.x'); } const v1Parts = parseVersion(version1); const v2Parts = parseVersion(version2); // Ensure both versions have the same number of parts const maxLength = Math.max(v1Parts.length, v2Parts.length); while (v1Parts.length < maxLength) v1Parts.push(0); while (v2Parts.length < maxLength) v2Parts.push(0); for (let i = 0; i < maxLength; i++) { if (v1Parts[i] > v2Parts[i]) return 1; // Version1 is greater if (v1Parts[i] < v2Parts[i]) return -1; // Version2 is greater } return 0; // Versions are equal }