77from litestar .enums import CompressionEncoding , ScopeType
88from litestar .middleware .base import AbstractMiddleware
99from litestar .middleware .compression .gzip_facade import GzipCompression
10- from litestar .middleware .compression .zstd_facade import ZstdCompression
1110from litestar .utils .empty import value_or_default
1211from litestar .utils .scope .state import ScopeState
1312
1413if TYPE_CHECKING :
1514 from litestar .config .compression import CompressionConfig
16- from litestar .middleware .compression .facade import CompressionFacade
1715 from litestar .types import (
1816 ASGIApp ,
1917 HTTPResponseStartEvent ,
@@ -83,17 +81,6 @@ async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
8381
8482 await self .app (scope , receive , send )
8583
86- def get_facade_cls (
87- self ,
88- compression_encoding : Literal [CompressionEncoding .BROTLI , CompressionEncoding .GZIP , CompressionEncoding .ZSTD ]
89- | str ,
90- ) -> type [CompressionFacade ]:
91- if compression_encoding == CompressionEncoding .GZIP :
92- return GzipCompression
93- if compression_encoding == CompressionEncoding .ZSTD :
94- return ZstdCompression
95- return self .config .compression_facade
96-
9784 def create_compression_send_wrapper (
9885 self ,
9986 send : Send ,
@@ -115,8 +102,12 @@ def create_compression_send_wrapper(
115102
116103 # We can't use `self.config.compression_facade` directly if the compression is `gzip` since
117104 # it may be being used as a fallback.
118- facade_cls : type [CompressionFacade ] = self .get_facade_cls (compression_encoding )
119- facade = facade_cls (buffer = bytes_buffer , compression_encoding = compression_encoding , config = self .config )
105+ if compression_encoding == CompressionEncoding .GZIP :
106+ facade = GzipCompression (buffer = bytes_buffer , compression_encoding = compression_encoding , config = self .config )
107+ else :
108+ facade = self .config .compression_facade ( # type: ignore[assignment]
109+ buffer = bytes_buffer , compression_encoding = compression_encoding , config = self .config
110+ )
120111
121112 initial_message : HTTPResponseStartEvent | None = None
122113 started = False
0 commit comments