mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-04 19:11:16 +08:00
R=jacktfranklin@chromium.org Bug: none Change-Id: I961be18530d3ccbc4efed0c2cda9bd603b14e27b Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3372931 Reviewed-by: Jack Franklin <jacktfranklin@chromium.org> Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org>
33 lines
824 B
JavaScript
33 lines
824 B
JavaScript
'use strict';
|
|
|
|
const configurationError = require('./configurationError');
|
|
const globalModules = require('global-modules');
|
|
const resolveFrom = require('resolve-from');
|
|
|
|
/**
|
|
* @param {string} basedir
|
|
* @param {string} lookup
|
|
* @param {string} [cwd]
|
|
* @return {string}
|
|
*/
|
|
module.exports = function getModulePath(basedir, lookup, cwd = process.cwd()) {
|
|
// 1. Try to resolve from the provided directory
|
|
// 2. Try to resolve from `cwd` or `process.cwd()`
|
|
// 3. Try to resolve from global `node_modules` directory
|
|
let path = resolveFrom.silent(basedir, lookup);
|
|
|
|
if (!path) {
|
|
path = resolveFrom.silent(cwd, lookup);
|
|
}
|
|
|
|
if (!path) {
|
|
path = resolveFrom.silent(globalModules, lookup);
|
|
}
|
|
|
|
if (!path) {
|
|
throw configurationError(`Could not find "${lookup}". Do you need a \`configBasedir\`?`);
|
|
}
|
|
|
|
return path;
|
|
};
|