mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-10-31 09:08:07 +07:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", { value: true });
 | |
| var semver_1 = require("semver");
 | |
| var get_package_version_1 = require("./get-package-version");
 | |
| var logger_1 = require("./logger");
 | |
| var messages_1 = require("./messages");
 | |
| var logger = logger_1.rootLogger.child({ namespace: 'versions' });
 | |
| var ExpectedVersions;
 | |
| (function (ExpectedVersions) {
 | |
|     ExpectedVersions["Jest"] = ">=24 <25";
 | |
|     ExpectedVersions["TypeScript"] = ">=2.7 <4";
 | |
|     ExpectedVersions["BabelJest"] = ">=24 <25";
 | |
|     ExpectedVersions["BabelCore"] = ">=7.0.0-beta.0 <8";
 | |
| })(ExpectedVersions = exports.ExpectedVersions || (exports.ExpectedVersions = {}));
 | |
| exports.VersionCheckers = {
 | |
|     jest: createVersionChecker('jest', ExpectedVersions.Jest),
 | |
|     typescript: createVersionChecker('typescript', ExpectedVersions.TypeScript),
 | |
|     babelJest: createVersionChecker('babel-jest', ExpectedVersions.BabelJest),
 | |
|     babelCore: createVersionChecker('@babel/core', ExpectedVersions.BabelCore),
 | |
| };
 | |
| function checkVersion(name, expectedRange, action) {
 | |
|     if (action === void 0) { action = 'warn'; }
 | |
|     var version = get_package_version_1.getPackageVersion(name);
 | |
|     var success = !!version && semver_1.satisfies(version, expectedRange);
 | |
|     logger.debug({
 | |
|         actualVersion: version,
 | |
|         expectedVersion: expectedRange,
 | |
|     }, 'checking version of %s: %s', name, success ? 'OK' : 'NOT OK');
 | |
|     if (!action || success)
 | |
|         return success;
 | |
|     var message = messages_1.interpolate(version ? messages_1.Errors.UntestedDependencyVersion : messages_1.Errors.MissingDependency, {
 | |
|         module: name,
 | |
|         actualVersion: version || '??',
 | |
|         expectedVersion: rangeToHumanString(expectedRange),
 | |
|     });
 | |
|     if (action === 'warn') {
 | |
|         logger.warn(message);
 | |
|     }
 | |
|     else if (action === 'throw') {
 | |
|         logger.fatal(message);
 | |
|         throw new RangeError(message);
 | |
|     }
 | |
|     return success;
 | |
| }
 | |
| function rangeToHumanString(versionRange) {
 | |
|     return new semver_1.Range(versionRange).toString();
 | |
| }
 | |
| function createVersionChecker(moduleName, expectedVersion) {
 | |
|     var memo;
 | |
|     var warn = function () {
 | |
|         if (memo !== undefined)
 | |
|             return memo;
 | |
|         return (memo = checkVersion(moduleName, expectedVersion, 'warn'));
 | |
|     };
 | |
|     var raise = function () { return checkVersion(moduleName, expectedVersion, 'throw'); };
 | |
|     return {
 | |
|         raise: raise,
 | |
|         warn: warn,
 | |
|         forget: function () {
 | |
|             memo = undefined;
 | |
|         },
 | |
|     };
 | |
| }
 |