balena-sdk
Version:
The Balena JavaScript SDK
48 lines (47 loc) • 1.63 kB
JavaScript
;
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;