import { StringUtils } from "./StringUtils.js"; export default class VersionUtils { /** * Verifica se a versão do backend (SankhyaOM) é maior ou igual a uma determinada versão. * @param executionCtx - Contexto de execução da inserção do dado no DataUnit. */ public static isRequiredVersion(currentVersion: string, requiredVersion:string): boolean { if(StringUtils.isEmpty(requiredVersion) || StringUtils.isEmpty(currentVersion)){ return true } const regexNumericPart = /\d+/g; const currentVersionParts = currentVersion.match(regexNumericPart)?.map(Number) || []; const requiredVersionParts = requiredVersion.match(regexNumericPart)?.map(Number) || []; const maxParts = Math.max(currentVersionParts.length, requiredVersionParts.length); for (let i = 0; i < maxParts; i++) { const currentPart = currentVersionParts[i] || 0; const requiredPart = requiredVersionParts[i] || 0; if (currentPart < requiredPart) return false; } if (requiredVersion.includes('b')) { const alphaPartCurrent = currentVersion.replace(regexNumericPart, ''); const alphaPartRequired = requiredVersion.replace(regexNumericPart, ''); if (alphaPartCurrent < alphaPartRequired) return false; } return true; } }