zhang-wei-jian's picture
:rocket:
7d73cf2
"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;