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
- Async Prop Resolution:
Async
optional()/defer()/lazy()/once()callbacks are pre-resolved byInertiaResponseon the request event loop before the body is serialized. This guarantees they share the loop with request-scoped async resources (asyncpg/aiosqlite/sqlspec sessions), so callbacks can safely use those resources.- SSR Client Pooling:
When SSR is enabled, the plugin maintains a shared
httpx.AsyncClientfor all SSR requests. This provides significant performance benefits: - Connection pooling with keep-alive - TLS session reuse - HTTP/2 multiplexing (when available)The client is initialized during app lifespan and properly closed on shutdown. Access via
inertia_plugin.ssr_clientif needed.
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 manage the shared SSR HTTP client.