UNPKG

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
"use strict"; 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()); }