diff --git a/pynecone/__init__.py b/pynecone/__init__.py index a619370ad..4673f2217 100644 --- a/pynecone/__init__.py +++ b/pynecone/__init__.py @@ -9,6 +9,7 @@ from .components import * from .config import Config from .constants import Env from .event import console_log, redirect, window_alert +from .middleware import Middleware from .model import Model, session from .state import ComputedVar as var from .state import State diff --git a/pynecone/app.py b/pynecone/app.py index 7a6ff57b7..7d50a760f 100644 --- a/pynecone/app.py +++ b/pynecone/app.py @@ -162,6 +162,18 @@ class App(Base): if out is not None: return out + def add_middleware(self, middleware: Middleware, index: Optional[int] = None): + """Add middleware to the app. + + Args: + middleware: The middleware to add. + index: The index to add the middleware at. + """ + if index is None: + self.middleware.append(middleware) + else: + self.middleware.insert(index, middleware) + def add_page( self, component: Union[Component, ComponentCallable],