Plugin¶
- class litestar_vite.inertia.plugin.InertiaPlugin[source]¶
Bases:
InitPluginProtocolInertia plugin.
This plugin configures Litestar for Inertia.js support, including: - Session middleware requirement validation - Exception handler for Inertia responses - InertiaRequest and InertiaResponse as default classes - Type encoders for StaticProp and DeferredProp
- BlockingPortal Behavior:
The plugin creates a BlockingPortal during its lifespan for executing async DeferredProp callbacks from synchronous type encoders. This is necessary because Litestar’s JSON serialization happens synchronously, but DeferredProp may contain async callables.
The portal is shared across all requests during the app’s lifetime. Type encoders for StaticProp and DeferredProp use
val.render()which may access this portal for async resolution.If you’re using DeferredProp outside of InertiaResponse (e.g., in custom serialization), ensure the app lifespan is active and the portal is available via
inertia_plugin.portal.
Example:
from litestar_vite.inertia import InertiaPlugin, InertiaConfig app = Litestar( plugins=[InertiaPlugin(InertiaConfig())], middleware=[ServerSideSessionConfig().middleware], )
- lifespan(app: Litestar) AsyncGenerator[None, None][source]¶
Lifespan to ensure the event loop is available.
- property portal: BlockingPortal¶
Return the blocking portal used for deferred prop resolution.
- Returns:
The BlockingPortal instance.