UNPKG

balena-sdk

Version:
48 lines (47 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ensureVersionCompatibility = exports.getDeviceOsSemverWithVariant = void 0; const tslib_1 = require("tslib"); const bSemver = tslib_1.__importStar(require("balena-semver")); const getDeviceOsSemverWithVariant = ({ os_version, os_variant, }) => { if (!os_version) { return null; } const versionInfo = bSemver.parse(os_version); if (!versionInfo) { return null; } let { version } = versionInfo; const build = versionInfo.build.slice(); if (os_variant && ![...build, ...versionInfo.prerelease].includes(os_variant)) { build.push(os_variant); } if (build.length > 0) { version = `${version}+${build.join('.')}`; } return version; }; exports.getDeviceOsSemverWithVariant = getDeviceOsSemverWithVariant; /** * @summary Ensure version compatibility using balena-semver * @name ensureVersionCompatibility * @private * @function * * @param {String} version - version under check * @param {String} minVersion - minimum accepted version * @throws {Error} Will reject if the given version is < than the given minimum version * @returns {void} * * @example * ensureVersionCompatibility(version, MIN_VERSION) * console.log('Is compatible'); * */ const ensureVersionCompatibility = function (version, minVersion, versionType) { if (version && bSemver.lt(version, minVersion)) { throw new Error(`Incompatible ${versionType} version: ${version} - must be >= ${minVersion}`); } }; exports.ensureVersionCompatibility = ensureVersionCompatibility;