innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);
innerArgv = maybeAsyncResult<Arguments>(innerArgv, result => {
return isPromise(handlerResult)
? handlerResult.then(() => result)
: result;
});