init
This commit is contained in:
commit
38355d2442
9083 changed files with 1225834 additions and 0 deletions
34
.venv/lib/python3.8/site-packages/blackd/middlewares.py
Normal file
34
.venv/lib/python3.8/site-packages/blackd/middlewares.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
from typing import Iterable, Awaitable, Callable
|
||||
from aiohttp.web_response import StreamResponse
|
||||
from aiohttp.web_request import Request
|
||||
from aiohttp.web_middlewares import middleware
|
||||
|
||||
Handler = Callable[[Request], Awaitable[StreamResponse]]
|
||||
Middleware = Callable[[Request, Handler], Awaitable[StreamResponse]]
|
||||
|
||||
|
||||
def cors(allow_headers: Iterable[str]) -> Middleware:
|
||||
@middleware
|
||||
async def impl(request: Request, handler: Handler) -> StreamResponse:
|
||||
is_options = request.method == "OPTIONS"
|
||||
is_preflight = is_options and "Access-Control-Request-Method" in request.headers
|
||||
if is_preflight:
|
||||
resp = StreamResponse()
|
||||
else:
|
||||
resp = await handler(request)
|
||||
|
||||
origin = request.headers.get("Origin")
|
||||
if not origin:
|
||||
return resp
|
||||
|
||||
resp.headers["Access-Control-Allow-Origin"] = "*"
|
||||
resp.headers["Access-Control-Expose-Headers"] = "*"
|
||||
if is_options:
|
||||
resp.headers["Access-Control-Allow-Headers"] = ", ".join(allow_headers)
|
||||
resp.headers["Access-Control-Allow-Methods"] = ", ".join(
|
||||
("OPTIONS", "POST")
|
||||
)
|
||||
|
||||
return resp
|
||||
|
||||
return impl # type: ignore
|
||||
Loading…
Add table
Add a link
Reference in a new issue