@truffle/compile-solidity
Version:
Compiler helper and artifact manager for Solidity files
51 lines • 2.15 kB
JavaScript
;
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