UNPKG

@arizeai/phoenix-client

Version:
57 lines 2.14 kB
"use strict"; /** * Lightweight semantic version utilities. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.parseSemanticVersion = parseSemanticVersion; exports.formatVersion = formatVersion; exports.satisfiesMinVersion = satisfiesMinVersion; // --------------------------------------------------------------------------- // Parsing // --------------------------------------------------------------------------- /** * Parse a semver-like version string (e.g. "13.14.0") into a triple. * Returns `null` if the string is not a valid version. */ function parseSemanticVersion(raw) { const parts = raw.trim().split("."); if (parts.length < 3) return null; const major = parseInt(parts[0], 10); const minor = parseInt(parts[1], 10); const patch = parseInt(parts[2], 10); if (Number.isNaN(major) || Number.isNaN(minor) || Number.isNaN(patch) || major < 0 || minor < 0 || patch < 0) { return null; } return [major, minor, patch]; } // --------------------------------------------------------------------------- // Formatting // --------------------------------------------------------------------------- /** * Format a `SemanticVersion` as a `"major.minor.patch"` string. */ function formatVersion(version) { return `${version[0]}.${version[1]}.${version[2]}`; } // --------------------------------------------------------------------------- // Comparison // --------------------------------------------------------------------------- /** * Returns `true` if `version` is greater than or equal to `minVersion`. */ function satisfiesMinVersion({ version, minVersion, }) { const [serverVersionMajor, serverVersionMinor, serverVersionPatch] = version; const [minVersionMajor, minVersionMinor, minVersionPatch] = minVersion; if (serverVersionMajor !== minVersionMajor) return serverVersionMajor > minVersionMajor; if (serverVersionMinor !== minVersionMinor) return serverVersionMinor > minVersionMinor; return serverVersionPatch >= minVersionPatch; } //# sourceMappingURL=semverUtils.js.map