From bbff7403fbf46f9ad92240ac213df8d30ef31b64 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Sep 2018 02:56:13 +0200 Subject: update packages --- node_modules/yargs/lib/command.js | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'node_modules/yargs/lib/command.js') 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) { -- cgit v1.2.3