MCPcopy Create free account
hub / github.com/yargs/yargs / handleValidationAndGetResult

Method handleValidationAndGetResult

lib/command.ts:413–483  ·  view source on GitHub ↗
(
    isDefaultCommand: boolean,
    commandHandler: CommandHandler,
    innerArgv: Arguments | Promise<Arguments>,
    currentContext: Context,
    aliases: Dictionary<string[]>,
    yargs: YargsInstance,
    middlewares: Middleware[],
    positionalMap: Dictionary<string[]>
  )

Source from the content-addressed store, hash-verified

411 return `$0 ${pc.join(' ')}`;
412 }
413 private handleValidationAndGetResult(
414 isDefaultCommand: boolean,
415 commandHandler: CommandHandler,
416 innerArgv: Arguments | Promise<Arguments>,
417 currentContext: Context,
418 aliases: Dictionary<string[]>,
419 yargs: YargsInstance,
420 middlewares: Middleware[],
421 positionalMap: Dictionary<string[]>
422 ) {
423 // we apply validation post-hoc, so that custom
424 // checks get passed populated positional arguments.
425 if (!yargs.getInternalMethods().getHasOutput()) {
426 const validation = yargs
427 .getInternalMethods()
428 .runValidation(
429 aliases,
430 positionalMap,
431 (yargs.parsed as DetailedArguments).error,
432 isDefaultCommand
433 );
434 innerArgv = maybeAsyncResult<Arguments>(innerArgv, result => {
435 validation(result);
436 return result;
437 });
438 }
439
440 if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) {
441 yargs.getInternalMethods().setHasOutput();
442 // to simplify the parsing of positionals in commands,
443 // we temporarily populate '--' rather than _, with arguments
444 const populateDoubleDash =
445 !!yargs.getOptions().configuration['populate--'];
446 yargs
447 .getInternalMethods()
448 .postProcess(innerArgv, populateDoubleDash, false, false);
449
450 innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);
451 innerArgv = maybeAsyncResult<Arguments>(innerArgv, result => {
452 const handlerResult = commandHandler.handler(result as Arguments);
453 return isPromise(handlerResult)
454 ? handlerResult.then(() => result)
455 : result;
456 });
457
458 if (!isDefaultCommand) {
459 yargs.getInternalMethods().getUsageInstance().cacheHelpMessage();
460 }
461
462 if (
463 isPromise(innerArgv) &&
464 !yargs.getInternalMethods().hasParseCallback()
465 ) {
466 innerArgv.catch(error => {
467 try {
468 yargs.getInternalMethods().getUsageInstance().fail(null, error);
469 } catch (_err) {
470 // If .fail(false) is not set, and no parse cb() has been

Callers 1

Calls 14

isPromiseFunction · 0.90
maybeAsyncResultFunction · 0.85
validationFunction · 0.85
applyMiddlewareFunction · 0.85
getHasOutputMethod · 0.80
getInternalMethodsMethod · 0.80
runValidationMethod · 0.80
setHasOutputMethod · 0.80
getOptionsMethod · 0.80
postProcessMethod · 0.80
cacheHelpMessageMethod · 0.80
getUsageInstanceMethod · 0.80

Tested by

no test coverage detected