44
55namespace Tempest \Console \Actions ;
66
7- use Closure ;
87use Tempest \Console \ConsoleConfig ;
98use Tempest \Console \ConsoleInputBuilder ;
9+ use Tempest \Console \ConsoleMiddlewareCallable ;
1010use Tempest \Console \ExitCode ;
1111use Tempest \Console \Initializers \Invocation ;
1212use Tempest \Console \Input \ConsoleArgumentBag ;
@@ -32,9 +32,9 @@ public function __invoke(string $commandName): ExitCode
3232 ));
3333 }
3434
35- private function getCallable (array $ commandMiddleware ): Closure
35+ private function getCallable (array $ commandMiddleware ): ConsoleMiddlewareCallable
3636 {
37- $ callable = function (Invocation $ invocation ) {
37+ $ callable = new ConsoleMiddlewareCallable ( function (Invocation $ invocation ) {
3838 $ consoleCommand = $ invocation ->consoleCommand ;
3939
4040 $ handler = $ consoleCommand ->handler ;
@@ -49,12 +49,14 @@ private function getCallable(array $commandMiddleware): Closure
4949 );
5050
5151 return ExitCode::SUCCESS ;
52- };
52+ }) ;
5353
5454 $ middlewareStack = [...$ this ->consoleConfig ->middleware , ...$ commandMiddleware ];
5555
5656 while ($ middlewareClass = array_pop ($ middlewareStack )) {
57- $ callable = fn (Invocation $ invocation ) => $ this ->container ->get ($ middlewareClass )($ invocation , $ callable );
57+ $ callable = new ConsoleMiddlewareCallable (
58+ fn (Invocation $ invocation ) => $ this ->container ->get ($ middlewareClass )($ invocation , $ callable )
59+ );
5860 }
5961
6062 return $ callable ;
0 commit comments