bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
92 lines (70 loc) • 2.26 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = versionParser;
function _semver() {
const data = _interopRequireDefault(require("semver"));
_semver = function () {
return data;
};
return data;
}
function _version() {
const data = _interopRequireDefault(require("./version"));
_version = function () {
return data;
};
return data;
}
function _constants() {
const data = require("../constants");
_constants = function () {
return data;
};
return data;
}
function _exceptions() {
const data = require("./exceptions");
_exceptions = function () {
return data;
};
return data;
}
function isLatest(versionStr) {
return versionStr === _constants().LATEST;
}
function isLatestTested(versionStr) {
if (!versionStr.includes(_constants().LATEST_TESTED_MARK)) return false;
const splited = versionStr.split(_constants().LATEST_TESTED_MARK);
if (splited.length !== 2) return false;
const [, numberStr] = splited;
const version = isRegular(numberStr);
if (!version) return false;
return true;
}
function isRegular(versionStr) {
return _semver().default.valid(versionStr);
}
function returnRegular(versionStr) {
return new (_version().default)(versionStr, false);
}
function returnLatestTestedVersion(versionStr) {
const [, numberStr] = versionStr.split(_constants().LATEST_TESTED_MARK);
return new (_version().default)(numberStr, true);
}
function returnLatest() {
return new (_version().default)(null, true);
}
function convertToSemVer(versionStr) {
return returnRegular(`0.0.${versionStr}`);
}
function versionParser(versionStr) {
if (!versionStr) return returnLatest();
if (typeof versionStr === 'string' && isLatest(versionStr)) return returnLatest();
if (typeof versionStr === 'string' && isLatestTested(versionStr)) return returnLatestTestedVersion(versionStr);
if (typeof versionStr === 'string' && isRegular(versionStr)) return returnRegular(versionStr);
if (typeof versionStr !== 'string' && Number.isInteger(versionStr)) return convertToSemVer(versionStr);
throw new (_exceptions().InvalidVersion)(versionStr.toString());
}