File size: 2,636 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadNewest = exports.requireFromCwd = exports.requireFromLinter = exports.getRequireFromCwd = exports.getRequireFromLinter = exports.createRequire = void 0;
const path_1 = __importDefault(require("path"));
const semver_1 = require("semver");
function createRequire(filename) {
    const Module = require("module");
    const fn = Module.createRequire ||
        Module.createRequireFromPath ||
        ((filename2) => {
            const mod = new Module(filename2);
            mod.filename = filename2;
            mod.paths = Module._nodeModulePaths(path_1.default.dirname(filename2));
            mod._compile("module.exports = require;", filename2);
            return mod.exports;
        });
    return fn(filename);
}
exports.createRequire = createRequire;
function isLinterPath(p) {
    return (p.includes(`eslint${path_1.default.sep}lib${path_1.default.sep}linter${path_1.default.sep}linter.js`) || p.includes(`eslint${path_1.default.sep}lib${path_1.default.sep}linter.js`));
}
function getRequireFromLinter() {
    const linterPath = Object.keys(require.cache).find(isLinterPath);
    if (linterPath) {
        try {
            return createRequire(linterPath);
        }
        catch (_a) {
        }
    }
    return null;
}
exports.getRequireFromLinter = getRequireFromLinter;
function getRequireFromCwd() {
    try {
        const cwd = process.cwd();
        const relativeTo = path_1.default.join(cwd, "__placeholder__.js");
        return createRequire(relativeTo);
    }
    catch (_a) {
    }
    return null;
}
exports.getRequireFromCwd = getRequireFromCwd;
function requireFromLinter(module) {
    var _a;
    try {
        return (_a = getRequireFromLinter()) === null || _a === void 0 ? void 0 : _a(module);
    }
    catch (_b) {
    }
    return null;
}
exports.requireFromLinter = requireFromLinter;
function requireFromCwd(module) {
    var _a;
    try {
        return (_a = getRequireFromCwd()) === null || _a === void 0 ? void 0 : _a(module);
    }
    catch (_b) {
    }
    return null;
}
exports.requireFromCwd = requireFromCwd;
function loadNewest(items) {
    let target = null;
    for (const item of items) {
        const pkg = item.getPkg();
        if (pkg != null && (!target || (0, semver_1.lte)(target.version, pkg.version))) {
            target = { version: pkg.version, get: item.get };
        }
    }
    return target.get();
}
exports.loadNewest = loadNewest;