diff options
Diffstat (limited to 'node_modules/yargs/lib')
-rw-r--r-- | node_modules/yargs/lib/apply-extends.js | 8 | ||||
-rw-r--r-- | node_modules/yargs/lib/command.js | 25 | ||||
-rw-r--r-- | node_modules/yargs/lib/usage.js | 31 | ||||
-rw-r--r-- | node_modules/yargs/lib/validation.js | 32 |
4 files changed, 42 insertions, 54 deletions
diff --git a/node_modules/yargs/lib/apply-extends.js b/node_modules/yargs/lib/apply-extends.js index 3005848e3..1436b6508 100644 --- a/node_modules/yargs/lib/apply-extends.js +++ b/node_modules/yargs/lib/apply-extends.js @@ -6,9 +6,9 @@ const YError = require('./yerror') let previouslyVisitedConfigs = [] -function checkForCircularExtends (path) { - if (previouslyVisitedConfigs.indexOf(path) > -1) { - throw new YError(`Circular extended configurations: '${path}'.`) +function checkForCircularExtends (cfgPath) { + if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { + throw new YError(`Circular extended configurations: '${cfgPath}'.`) } } @@ -21,7 +21,7 @@ function applyExtends (config, cwd) { if (config.hasOwnProperty('extends')) { if (typeof config.extends !== 'string') return defaultConfig - const isPath = /\.json$/.test(config.extends) + const isPath = /\.json|\..*rc$/.test(config.extends) let pathToDefault = null if (!isPath) { try { diff --git a/node_modules/yargs/lib/command.js b/node_modules/yargs/lib/command.js index 5ac848e21..65322dbbd 100644 --- a/node_modules/yargs/lib/command.js +++ b/node_modules/yargs/lib/command.js @@ -11,27 +11,26 @@ const DEFAULT_MARKER = /(^\*)|(^\$0)/ // arguments. module.exports = function command (yargs, usage, validation) { const self = {} - let handlers = {} let aliasMap = {} let defaultCommand - self.addHandler = function addHandler (cmd, description, builder, handler) { + self.addHandler = function addHandler (cmd, description, builder, handler, middlewares) { let aliases = [] handler = handler || (() => {}) - + middlewares = middlewares || [] if (Array.isArray(cmd)) { aliases = cmd.slice(1) cmd = cmd[0] } else if (typeof cmd === 'object') { let command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd) if (cmd.aliases) command = [].concat(command).concat(cmd.aliases) - self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler) + self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares) return } // allow a module to be provided instead of separate builder and handler if (typeof builder === 'object' && builder.builder && typeof builder.handler === 'function') { - self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler) + self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares) return } @@ -50,6 +49,7 @@ module.exports = function command (yargs, usage, validation) { } return true }) + // standardize on $0 for default command. if (parsedAliases.length === 0 && isDefault) parsedAliases.push('$0') @@ -74,6 +74,7 @@ module.exports = function command (yargs, usage, validation) { description: description, handler, builder: builder || {}, + middlewares: middlewares || [], demanded: parsedCommand.demanded, optional: parsedCommand.optional } @@ -225,7 +226,19 @@ module.exports = function command (yargs, usage, validation) { if (commandHandler.handler && !yargs._hasOutput()) { yargs._setHasOutput() - commandHandler.handler(innerArgv) + if (commandHandler.middlewares.length > 0) { + const middlewareArgs = commandHandler.middlewares.reduce(function (initialObj, middleware) { + return Object.assign(initialObj, middleware(innerArgv)) + }, {}) + Object.assign(innerArgv, middlewareArgs) + } + const handlerResult = commandHandler.handler(innerArgv) + if (handlerResult && typeof handlerResult.then === 'function') { + handlerResult.then( + null, + (error) => yargs.getUsageInstance().fail(null, error) + ) + } } if (command) { diff --git a/node_modules/yargs/lib/usage.js b/node_modules/yargs/lib/usage.js index cf79b10de..c323c1bb1 100644 --- a/node_modules/yargs/lib/usage.js +++ b/node_modules/yargs/lib/usage.js @@ -46,9 +46,9 @@ module.exports = function usage (yargs, y18n) { if (!failureOutput) { failureOutput = true if (showHelpOnFail) yargs.showHelp('error') - if (msg) logger.error(msg) + if (msg || err) logger.error(msg || err) if (failMessage) { - if (msg) logger.error('') + if (msg || err) logger.error('') logger.error(failMessage) } } @@ -152,16 +152,23 @@ module.exports = function usage (yargs, y18n) { const demandedCommands = yargs.getDemandedCommands() const groups = yargs.getGroups() const options = yargs.getOptions() - let keys = Object.keys( - Object.keys(descriptions) - .concat(Object.keys(demandedOptions)) - .concat(Object.keys(demandedCommands)) - .concat(Object.keys(options.default)) - .reduce((acc, key) => { - if (key !== '_') acc[key] = true - return acc - }, {}) - ) + + let keys = [] + keys = keys.concat(Object.keys(descriptions)) + keys = keys.concat(Object.keys(demandedOptions)) + keys = keys.concat(Object.keys(demandedCommands)) + keys = keys.concat(Object.keys(options.default)) + keys = keys.filter(key => { + if (options.hiddenOptions.indexOf(key) < 0) { + return true + } else if (yargs.parsed.argv[options.showHiddenOpt]) { + return true + } + }) + keys = Object.keys(keys.reduce((acc, key) => { + if (key !== '_') acc[key] = true + return acc + }, {})) const theWrap = getWrap() const ui = require('cliui')({ diff --git a/node_modules/yargs/lib/validation.js b/node_modules/yargs/lib/validation.js index 1eee2fb02..f4655b4fd 100644 --- a/node_modules/yargs/lib/validation.js +++ b/node_modules/yargs/lib/validation.js @@ -54,38 +54,6 @@ module.exports = function validation (yargs, usage, y18n) { } } - // make sure that any args that require an - // value (--foo=bar), have a value. - self.missingArgumentValue = function missingArgumentValue (argv) { - const defaultValues = [true, false, ''] - const options = yargs.getOptions() - - if (options.requiresArg.length > 0) { - const missingRequiredArgs = [] - - options.requiresArg.forEach((key) => { - const value = argv[key] - - // if a value is explicitly requested, - // flag argument as missing if it does not - // look like foo=bar was entered. - if (~defaultValues.indexOf(value) || - (Array.isArray(value) && !value.length)) { - missingRequiredArgs.push(key) - } - }) - - if (missingRequiredArgs.length > 0) { - usage.fail(__n( - 'Missing argument value: %s', - 'Missing argument values: %s', - missingRequiredArgs.length, - missingRequiredArgs.join(', ') - )) - } - } - } - // make sure all the required arguments are present. self.requiredArguments = function requiredArguments (argv) { const demandedOptions = yargs.getDemandedOptions() |