@@ -897,6 +897,21 @@ Expecting one of '${allowedValues.join("', '")}'`);
897
897
return userArgs ;
898
898
}
899
899
900
+ /**
901
+ * @param {boolean } async
902
+ * @param {Function } userArgsCallback
903
+ * @param {string[] } [argv]
904
+ * @param {Object } [parseOptions]
905
+ * @param {string } [parseOptions.from]
906
+ * @return {Command|Promise }
907
+ * @api private
908
+ */
909
+
910
+ _parseSubroutine ( async , userArgsCallback , argv , parseOptions ) {
911
+ const userArgs = this . _prepareUserArgs ( argv , parseOptions ) ;
912
+ return userArgsCallback ( userArgs ) ;
913
+ }
914
+
900
915
/**
901
916
* Parse `argv`, setting options and invoking commands when defined.
902
917
*
@@ -915,10 +930,10 @@ Expecting one of '${allowedValues.join("', '")}'`);
915
930
*/
916
931
917
932
parse ( argv , parseOptions ) {
918
- const userArgs = this . _prepareUserArgs ( argv , parseOptions ) ;
919
- this . _parseCommand ( [ ] , userArgs ) ;
920
-
921
- return this ;
933
+ return this . _parseSubroutine ( false , ( userArgs ) => {
934
+ this . _parseCommand ( [ ] , userArgs ) ;
935
+ return this ;
936
+ } , argv , parseOptions ) ;
922
937
}
923
938
924
939
/**
@@ -941,10 +956,10 @@ Expecting one of '${allowedValues.join("', '")}'`);
941
956
*/
942
957
943
958
async parseAsync ( argv , parseOptions ) {
944
- const userArgs = this . _prepareUserArgs ( argv , parseOptions ) ;
945
- await this . _parseCommand ( [ ] , userArgs ) ;
946
-
947
- return this ;
959
+ return this . _parseSubroutine ( true , async ( userArgs ) => {
960
+ await this . _parseCommand ( [ ] , userArgs ) ;
961
+ return this ;
962
+ } , argv , parseOptions ) ;
948
963
}
949
964
950
965
/**
0 commit comments