PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/depcheck/dist/special
Просмотр файла: bin.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = parseBinary;
var _path = _interopRequireDefault(require("path"));
var _lodash = _interopRequireDefault(require("lodash"));
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const binaryCache = {};
function getCacheOrLoad(dep, dir) {
const index = `${dir}/${dep}`;
if (!binaryCache[index]) {
const metadata = (0, _utils.loadModuleData)(dep, dir).metadata || {};
binaryCache[index] = metadata.bin || {};
}
return binaryCache[index];
}
function getBinaries(dep, dir) {
const binMetadata = getCacheOrLoad(dep, dir);
if (typeof binMetadata === 'string') {
// Use path.basename to discard any scope
// e.g. a package named "@foo/bar" creates a command named "bar"
return [[_path.default.basename(dep), binMetadata]];
}
return _lodash.default.toPairs(binMetadata);
}
function getBinaryFeatures(dep, [key, value]) {
const binPath = _path.default.join('node_modules', dep, value).replace(/\\/g, '/');
const features = [key, `--require ${key}`, `--require ${key}/register`, `-r ${key}`, `-r ${key}/register`, `$(npm bin)/${key}`, `node_modules/.bin/${key}`, `./node_modules/.bin/${key}`, binPath, `./${binPath}`];
return features;
}
function isBinaryInUse(dep, scripts, dir) {
const binaries = getBinaries(dep, dir);
return binaries.some(bin => getBinaryFeatures(dep, bin).some(feature => scripts.some(script => _lodash.default.includes(` ${script} `, ` ${feature} `))));
}
async function parseBinary(filename, deps, dir) {
const scripts = await (0, _utils.getScripts)(filename);
return deps.filter(dep => isBinaryInUse(dep, scripts, dir));
}
module.exports = exports.default;Выполнить команду
Для локальной разработки. Не используйте в интернете!