@arizeai/phoenix-client
Version:
A client for the Phoenix API
57 lines • 2.14 kB
JavaScript
;
/**
* 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