Tim van der Lippe | fdbd42e | 2020-04-07 15:14:36 +0100 | [diff] [blame] | 1 | 'use strict' |
| 2 | exports.__esModule = true |
| 3 | |
| 4 | const Module = require('module') |
| 5 | const path = require('path') |
| 6 | |
| 7 | // borrowed from babel-eslint |
| 8 | function createModule(filename) { |
| 9 | const mod = new Module(filename) |
| 10 | mod.filename = filename |
| 11 | mod.paths = Module._nodeModulePaths(path.dirname(filename)) |
| 12 | return mod |
| 13 | } |
| 14 | |
| 15 | exports.default = function moduleRequire(p) { |
| 16 | try { |
| 17 | // attempt to get espree relative to eslint |
| 18 | const eslintPath = require.resolve('eslint') |
| 19 | const eslintModule = createModule(eslintPath) |
| 20 | return require(Module._resolveFilename(p, eslintModule)) |
| 21 | } catch(err) { /* ignore */ } |
| 22 | |
| 23 | try { |
| 24 | // try relative to entry point |
| 25 | return require.main.require(p) |
| 26 | } catch(err) { /* ignore */ } |
| 27 | |
| 28 | // finally, try from here |
| 29 | return require(p) |
| 30 | } |