'use strict'; exports.__esModule = true; const Module = require('module'); const path = require('path'); // borrowed from babel-eslint /** @type {(filename: string) => Module} */ function createModule(filename) { const mod = new Module(filename); mod.filename = filename; // @ts-expect-error _nodeModulesPaths are undocumented mod.paths = Module._nodeModulePaths(path.dirname(filename)); return mod; } /** @type {import('./module-require').default} */ exports.default = function moduleRequire(p) { try { // attempt to get espree relative to eslint const eslintPath = require.resolve('eslint'); const eslintModule = createModule(eslintPath); // @ts-expect-error _resolveFilename is undocumented return require(Module._resolveFilename(p, eslintModule)); } catch (err) { /* ignore */ } try { // try relative to entry point // @ts-expect-error TODO: figure out what this is return require.main.require(p); } catch (err) { /* ignore */ } // finally, try from here return require(p); };