PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/depcheck/dist/utils
Просмотр файла: configuration-reader.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getCliArgs = getCliArgs;
exports.getConfiguration = getConfiguration;
exports.getRCFileConfiguration = getRCFileConfiguration;
var _yargs = _interopRequireDefault(require("yargs"));
var _cosmiconfig = require("cosmiconfig");
var _camelcase = _interopRequireDefault(require("camelcase"));
var _lodash = _interopRequireDefault(require("lodash"));
var _configurationParsingException = _interopRequireDefault(require("./exceptions/configuration-parsing-exception"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function parseCsvArray(value) {
return (value || '').split(',');
}
function convertObjectToCamelCase(obj) {
return Object.entries(obj).reduce((newObj, [key, value]) => {
newObj[(0, _camelcase.default)(key)] = value; // eslint-disable-line no-param-reassign
return newObj;
}, {});
}
function createParsersObject(parsersFromCli) {
return _lodash.default.isUndefined(parsersFromCli) ? undefined : (0, _lodash.default)(parsersFromCli).map(keyValuePair => keyValuePair.split(':')).fromPairs().mapValues(value => value.split('&')).value();
}
function getCliArgs(args, version) {
return (0, _yargs.default)(args).usage('Usage: $0 [DIRECTORY]').boolean(['ignore-bin-package', 'skip-missing']).describe('config', 'A config file to be parsed').describe('ignore-bin-package', 'Ignore package with bin entry').describe('skip-missing', 'Skip calculation of missing dependencies').describe('json', 'Output results to JSON').describe('oneline', 'Output results as space separated string').describe('ignores', 'Comma separated package list to ignore').describe('ignore-dirs', 'Comma separated folder names to ignore (deprecated)').describe('ignore-path', 'Path to a file with patterns describing files to ignore.').describe('ignore-patterns', 'Comma separated patterns describing files to ignore.').describe('parsers', 'Comma separated glob:parser pair list').describe('quiet', 'Suppress the "No depcheck issue" message').describe('detectors', 'Comma separated detector list').describe('specials', 'Comma separated special parser list').version('version', 'Show version number', version).help('help', 'Show this help message').coerce(['ignores', 'ignore-dirs', 'ignore-patterns', 'detectors', 'specials'], parseCsvArray).coerce('parsers', parsersStr => {
const parsers = parseCsvArray(parsersStr);
return createParsersObject(parsers);
});
}
/* istanbul ignore next */
function returnNull() {
return null;
}
async function getRCFileConfiguration(moduleName, filename, dir) {
try {
const configFileExplorer = (0, _cosmiconfig.cosmiconfig)(moduleName, {
// this prevents cosmiconfig from picking up .js configuration files. "null" means no file was found.
// Gotta extract `() => null` into a function to be able to ignore the line from the code coverage count.
loaders: {
'.js': returnNull
}
});
const findings = await (filename !== undefined ? configFileExplorer.load(filename) : configFileExplorer.search(dir));
return !findings || findings.isEmpty ? {} : convertObjectToCamelCase(findings.config);
} catch (error) {
// It's not documented in cosmiconfig's documentation,
// but error in this case should be a YAMLException
throw new _configurationParsingException.default(filename, error);
}
}
async function getConfiguration(args, moduleName, version) {
const dir = args[0] || '.';
const cliConfig = getCliArgs(args, version);
const rcConfig = await getRCFileConfiguration(moduleName, cliConfig.argv.config, dir);
return {
...rcConfig,
...cliConfig.argv
};
}Выполнить команду
Для локальной разработки. Не используйте в интернете!