| "use strict" |
| exports.__esModule = true |
| |
| const Module = require('module') |
| const path = require('path') |
| |
| // borrowed from babel-eslint |
| function createModule(filename) { |
| const mod = new Module(filename) |
| mod.filename = filename |
| mod.paths = Module._nodeModulePaths(path.dirname(filename)) |
| return mod |
| } |
| |
| exports.default = function moduleRequire(p) { |
| try { |
| // attempt to get espree relative to eslint |
| const eslintPath = require.resolve('eslint') |
| const eslintModule = createModule(eslintPath) |
| return require(Module._resolveFilename(p, eslintModule)) |
| } catch(err) { /* ignore */ } |
| |
| try { |
| // try relative to entry point |
| return require.main.require(p) |
| } catch(err) { /* ignore */ } |
| |
| // finally, try from here |
| return require(p) |
| } |