File size: 2,003 Bytes
7d73cf2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.getNewestEspreeKind = exports.getEspree = void 0;
const require_utils_1 = require("./require-utils");
const semver_1 = require("semver");
let espreeCache = null;
function getEspree() {
    if (!espreeCache) {
        espreeCache = (0, require_utils_1.loadNewest)([
            {
                getPkg() {
                    return (0, require_utils_1.requireFromCwd)("espree/package.json");
                },
                get() {
                    return (0, require_utils_1.requireFromCwd)("espree");
                },
            },
            {
                getPkg() {
                    return (0, require_utils_1.requireFromLinter)("espree/package.json");
                },
                get() {
                    return (0, require_utils_1.requireFromLinter)("espree");
                },
            },
            {
                getPkg() {
                    return require("espree/package.json");
                },
                get() {
                    return require("espree");
                },
            },
        ]);
    }
    return espreeCache;
}
exports.getEspree = getEspree;
let kindCache = null;
function getNewestEspreeKind() {
    if (kindCache) {
        return kindCache;
    }
    const cwdPkg = (0, require_utils_1.requireFromCwd)("espree/package.json");
    const linterPkg = (0, require_utils_1.requireFromLinter)("espree/package.json");
    const self = require("espree/package.json");
    let target = {
        kind: "self",
        version: self.version,
    };
    if (cwdPkg != null && (0, semver_1.lte)(target.version, cwdPkg.version)) {
        target = { kind: "cwd", version: cwdPkg.version };
    }
    if (linterPkg != null && (0, semver_1.lte)(target.version, linterPkg.version)) {
        target = { kind: "linter", version: linterPkg.version };
    }
    return (kindCache = target.kind);
}
exports.getNewestEspreeKind = getNewestEspreeKind;