PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/metro-resolver/src
Просмотр файла: PackageResolve.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.getPackageEntryPoint = getPackageEntryPoint;
exports.redirectModulePath = redirectModulePath;
var _toPosixPath = _interopRequireDefault(require("./utils/toPosixPath"));
var _path = _interopRequireDefault(require("path"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : { default: e };
}
function getPackageEntryPoint(context, packageInfo, platform) {
const { mainFields } = context;
const pkg = packageInfo.packageJson;
let main = "index";
for (const name of mainFields) {
if (typeof pkg[name] === "string" && pkg[name].length) {
main = pkg[name];
break;
}
}
const variants = [
main,
main.slice(0, 2) === "./" ? main.slice(2) : "./" + main,
].flatMap((variant) => [
variant,
variant + ".js",
variant + ".json",
variant.replace(/(\.js|\.json)$/, ""),
]);
const replacement = matchSubpathFromMainFields(variants, pkg, mainFields);
if (typeof replacement === "string") {
return replacement;
}
return main;
}
function redirectModulePath(context, modulePath) {
const { getPackageForModule, mainFields, originModulePath } = context;
const isModulePathAbsolute = _path.default.isAbsolute(modulePath);
const containingPackage = getPackageForModule(
isModulePathAbsolute ? modulePath : originModulePath,
);
if (containingPackage == null) {
return modulePath;
}
let redirectedPath;
if (modulePath.startsWith(".") || isModulePathAbsolute) {
const packageRelativeModulePath = isModulePathAbsolute
? containingPackage.packageRelativePath
: _path.default.join(
_path.default.dirname(containingPackage.packageRelativePath),
modulePath,
);
redirectedPath = matchSubpathFromMainFields(
"./" + (0, _toPosixPath.default)(packageRelativeModulePath),
containingPackage.packageJson,
mainFields,
);
if (typeof redirectedPath === "string") {
redirectedPath = _path.default.isAbsolute(redirectedPath)
? _path.default.normalize(redirectedPath)
: _path.default.join(containingPackage.rootPath, redirectedPath);
}
} else {
redirectedPath = matchSubpathFromMainFields(
modulePath,
containingPackage.packageJson,
mainFields,
);
}
if (redirectedPath != null) {
return redirectedPath;
}
return modulePath;
}
function matchSubpathFromMainFields(subpath, pkg, mainFields) {
const fieldValues = mainFields
.map((name) => pkg[name])
.filter((value) => value != null && typeof value !== "string");
if (!fieldValues.length) {
return null;
}
const replacements = Object.assign({}, ...fieldValues.reverse());
const variants = Array.isArray(subpath)
? subpath
: expandSubpathVariants(subpath);
for (const variant of variants) {
const replacement = replacements[variant];
if (replacement != null) {
return replacement;
}
}
return null;
}
function expandSubpathVariants(subpath) {
return [subpath, subpath + ".js", subpath + ".json"];
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!