(self)
| 55 | self.middleware_stack: ASGIApp | None = None |
| 56 | |
| 57 | def build_middleware_stack(self) -> ASGIApp: |
| 58 | debug = self.debug |
| 59 | error_handler = None |
| 60 | exception_handlers: dict[Any, ExceptionHandler] = {} |
| 61 | |
| 62 | for key, value in self.exception_handlers.items(): |
| 63 | if key in (500, Exception): |
| 64 | error_handler = value |
| 65 | else: |
| 66 | exception_handlers[key] = value |
| 67 | |
| 68 | middleware = ( |
| 69 | [Middleware(ServerErrorMiddleware, handler=error_handler, debug=debug)] |
| 70 | + self.user_middleware |
| 71 | + [Middleware(ExceptionMiddleware, handlers=exception_handlers, debug=debug)] |
| 72 | ) |
| 73 | |
| 74 | app = self.router |
| 75 | for cls, args, kwargs in reversed(middleware): |
| 76 | app = cls(app, *args, **kwargs) |
| 77 | return app |
| 78 | |
| 79 | @property |
| 80 | def routes(self) -> list[BaseRoute]: |
no test coverage detected