| | |
| | | |
| | | var _resolve = _interopRequireDefault(require("resolve")); |
| | | |
| | | var _module = require("module"); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | const nativeRequireResolve = parseFloat(process.versions.node) >= 8.9; |
| | | const nativeRequireResolve = parseFloat(process.versions.node) >= 8.9; // $FlowIgnore |
| | | |
| | | // eslint-disable-line |
| | | function resolve(dirname, moduleName, absoluteImports) { |
| | | if (absoluteImports === false) return moduleName; |
| | | let basedir = dirname; |
| | |
| | | basedir = _path.default.resolve(basedir, absoluteImports); |
| | | } |
| | | |
| | | let modulePackage, moduleNestedPath; |
| | | let slash = moduleName.indexOf("/"); |
| | | |
| | | if (moduleName[0] === "@") { |
| | | slash = moduleName.indexOf("/", slash + 1); |
| | | } |
| | | |
| | | if (slash === -1) { |
| | | modulePackage = moduleName; |
| | | moduleNestedPath = ""; |
| | | } else { |
| | | modulePackage = moduleName.slice(0, slash); |
| | | moduleNestedPath = moduleName.slice(slash); |
| | | } |
| | | |
| | | try { |
| | | let pkg; |
| | | |
| | | if (nativeRequireResolve) { |
| | | // $FlowIgnore |
| | | pkg = require.resolve(`${modulePackage}/package.json`, { |
| | | return require.resolve(moduleName, { |
| | | paths: [basedir] |
| | | }); |
| | | } else { |
| | | pkg = _resolve.default.sync(`${modulePackage}/package.json`, { |
| | | return _resolve.default.sync(moduleName, { |
| | | basedir |
| | | }); |
| | | } |
| | | |
| | | return _path.default.dirname(pkg) + moduleNestedPath; |
| | | } catch (err) { |
| | | if (err.code !== "MODULE_NOT_FOUND") throw err; // $FlowIgnore |
| | | |
| | |
| | | function has(basedir, name) { |
| | | try { |
| | | if (nativeRequireResolve) { |
| | | // $FlowIgnore |
| | | require.resolve(name, { |
| | | paths: [basedir] |
| | | }); |