UNPKG

@truffle/compile-solidity

Version:
51 lines 2.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.rangeContainsAtLeast = exports.resolveToRange = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const semver_1 = __importDefault(require("semver")); const loadingStrategies_1 = require("./loadingStrategies"); const index_1 = require("./index"); /** * takes a version string which may be native or local, and resolves * it to one which is (presumably) either a version or a version range */ function resolveToRange(version) { if (!version) { return index_1.CompilerSupplier.getDefaultVersion(); } //if version was native or local, must determine what version that //actually corresponds to if (version === "native") { return new loadingStrategies_1.Native().load().version(); } else if (fs_extra_1.default.existsSync(version) && path_1.default.isAbsolute(version)) { return new loadingStrategies_1.Local().load(version).version(); } return version; } exports.resolveToRange = resolveToRange; /** * parameter range may be either an individual version or a range */ function rangeContainsAtLeast(range, comparisonVersion) { //the following line works with prereleases const individualAtLeast = !!(semver_1.default.valid(range, { loose: true }) && semver_1.default.gte(range, comparisonVersion, { includePrerelease: true, loose: true })); //the following line doesn't, despite the flag, but does work with version ranges const rangeAtLeast = !!((semver_1.default.validRange(range, { loose: true }) && !semver_1.default.gtr(comparisonVersion, range, { includePrerelease: true, loose: true })) //intersects will throw if given undefined so must ward against ); return individualAtLeast || rangeAtLeast; } exports.rangeContainsAtLeast = rangeContainsAtLeast; //# sourceMappingURL=rangeUtils.js.map