123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.semverMin = semverMin;
- exports.semverify = semverify;
- exports.isUnreleasedVersion = isUnreleasedVersion;
- exports.getLowestUnreleased = getLowestUnreleased;
- exports.getHighestUnreleased = getHighestUnreleased;
- exports.getLowestImplementedVersion = getLowestImplementedVersion;
-
- var _semver = require("semver");
-
- var _helperValidatorOption = require("@babel/helper-validator-option");
-
- var _targets = require("./targets");
-
- const versionRegExp = /^(\d+|\d+.\d+)$/;
- const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets");
-
- function semverMin(first, second) {
- return first && _semver.lt(first, second) ? first : second;
- }
-
- function semverify(version) {
- if (typeof version === "string" && _semver.valid(version)) {
- return version;
- }
-
- v.invariant(typeof version === "number" || typeof version === "string" && versionRegExp.test(version), `'${version}' is not a valid version`);
- const split = version.toString().split(".");
-
- while (split.length < 3) {
- split.push("0");
- }
-
- return split.join(".");
- }
-
- function isUnreleasedVersion(version, env) {
- const unreleasedLabel = _targets.unreleasedLabels[env];
- return !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase();
- }
-
- function getLowestUnreleased(a, b, env) {
- const unreleasedLabel = _targets.unreleasedLabels[env];
- const hasUnreleased = [a, b].some(item => item === unreleasedLabel);
-
- if (hasUnreleased) {
- return a === hasUnreleased ? b : a || b;
- }
-
- return semverMin(a, b);
- }
-
- function getHighestUnreleased(a, b, env) {
- return getLowestUnreleased(a, b, env) === a ? b : a;
- }
-
- function getLowestImplementedVersion(plugin, environment) {
- const result = plugin[environment];
-
- if (!result && environment === "android") {
- return plugin.chrome;
- }
-
- return result;
- }
|