81 lines
2.6 KiB
JavaScript
81 lines
2.6 KiB
JavaScript
"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;
|