aboutsummaryrefslogtreecommitdiff
path: root/node_modules/yargs/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/yargs/lib')
-rw-r--r--node_modules/yargs/lib/apply-extends.js8
-rw-r--r--node_modules/yargs/lib/command.js25
-rw-r--r--node_modules/yargs/lib/usage.js31
-rw-r--r--node_modules/yargs/lib/validation.js32
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()