保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 23b60dc1975db38c280d8a123aff97544d1673e0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VersionCheckers = void 0;
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' });
exports.VersionCheckers = {
    jest: createVersionChecker('jest', ">=27.0.0 <28"),
    typescript: createVersionChecker('typescript', ">=3.8 <5"),
    babelJest: createVersionChecker('babel-jest', ">=27.0.0 <28"),
    babelCore: createVersionChecker('@babel/core', ">=7.0.0-beta.0 <8"),
};
function checkVersion(name, expectedRange, action) {
    if (action === void 0) { action = 'warn'; }
    var success = true;
    if (!('TS_JEST_DISABLE_VER_CHECKER' in process.env)) {
        var version = (0, get_package_version_1.getPackageVersion)(name);
        success = !!version && (0, 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 = (0, messages_1.interpolate)(version ? "Version {{actualVersion}} of {{module}} installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version ({{expectedVersion}}). Please do not report issues in ts-jest if you are using unsupported versions." : "Module {{module}} is not installed. If you're experiencing issues, consider installing a supported version ({{expectedVersion}}).", {
            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;
        },
    };
}