PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/depcheck/dist
Просмотр файла: cli.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cli;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _lodash = _interopRequireDefault(require("lodash"));
var _index = _interopRequireDefault(require("./index"));
var _package = require("../package.json");
var _configurationReader = require("./utils/configuration-reader");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function checkPathExist(dir, errorMessage) {
return new Promise((resolve, reject) => _fs.default.exists(dir, result => result ? resolve() : reject(errorMessage)));
}
function getParsers(parsers) {
if (!parsers) {
return undefined;
}
const parserTuples = Object.entries(parsers).map(([extension, parserNames]) => {
// parserNames might not be an array due to user error when creating a configuration file.
// Example of a configuration file where this might happen:
// {
// parsers: {
// "*.js" : "es6",
// "*.jsx": ["jsx"]
// }
// }
const sanitizedParserNames = Array.isArray(parserNames) ? parserNames : [parserNames];
const parserLambdas = sanitizedParserNames.map(parserName => _index.default.parser[parserName]);
return [extension, parserLambdas];
});
return _lodash.default.fromPairs(parserTuples);
}
function getDetectors(detectors) {
return _lodash.default.isUndefined(detectors) ? undefined : detectors.map(detectorName => _index.default.detector[detectorName]);
}
function getSpecials(specials) {
return _lodash.default.isUndefined(specials) ? undefined : specials.map(specialName => _index.default.special[specialName]);
}
function noIssue(result) {
return _lodash.default.isEmpty(result.dependencies) && _lodash.default.isEmpty(result.devDependencies) && _lodash.default.isEmpty(result.missing);
}
function prettify(caption, deps, oneline) {
if (oneline) {
return deps.length ? [caption, deps.join(' ')] : [];
}
const list = deps.map(dep => `* ${dep}`);
return list.length ? [caption].concat(list) : [];
}
function mapMissing(missing, rootDir, oneline) {
if (oneline) {
return _lodash.default.keys(missing);
}
return _lodash.default.map(missing, (foundInFiles, key) => `${key}: ${_lodash.default.replace(_lodash.default.first(foundInFiles), rootDir, '.')}`);
}
function print(result, log, opt, rootDir) {
if (opt.json) {
log(JSON.stringify(result, (key, value) => _lodash.default.isError(value) ? value.stack : value));
} else if (noIssue(result)) {
if (!opt.quiet) {
log('No depcheck issue');
}
} else {
const deps = prettify('Unused dependencies', result.dependencies, opt.oneline);
const devDeps = prettify('Unused devDependencies', result.devDependencies, opt.oneline);
const missing = prettify('Missing dependencies', mapMissing(result.missing, rootDir, opt.oneline), opt.oneline);
const content = deps.concat(devDeps, missing).join('\n');
log(content);
}
return result;
}
async function cli(args, log, error, exit) {
try {
const opt = await (0, _configurationReader.getConfiguration)(args, _package.name, _package.version);
const dir = opt._[0] || '.';
const rootDir = _path.default.resolve(dir);
await checkPathExist(rootDir, `Path ${dir} does not exist`);
await checkPathExist(_path.default.resolve(rootDir, 'package.json'), `Path ${dir} does not contain a package.json file`);
const depcheckResult = await (0, _index.default)(rootDir, {
ignoreBinPackage: opt.ignoreBinPackage,
ignorePath: opt.ignorePath,
ignoreMatches: opt.ignores || [],
ignoreDirs: opt.ignoreDirs || [],
ignorePatterns: opt.ignorePatterns || [],
parsers: getParsers(opt.parsers),
detectors: getDetectors(opt.detectors),
specials: getSpecials(opt.specials),
skipMissing: opt.skipMissing
});
print(depcheckResult, log, opt, rootDir);
exit(noIssue(depcheckResult) ? 0 : -1);
} catch (err) {
error(err);
exit(-1);
}
}
module.exports = exports.default;Выполнить команду
Для локальной разработки. Не используйте в интернете!