govsearch / backend /__init__.py
Katsuya Oda
Initial commit
5285b72 unverified
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.responses import FileResponse
from starlette.routing import Mount, Route, WebSocketRoute
from starlette.staticfiles import StaticFiles
from content_size_limit_asgi import ContentSizeLimitMiddleware
from .graphql import graphql_app
from .logger import init_logger
from .cache import cache_questions, cache_generate_summary
init_logger()
app = Starlette(
debug=True,
on_startup=[cache_questions.connect, cache_generate_summary.connect],
on_shutdown=[cache_questions.disconnect, cache_generate_summary.disconnect],
middleware=[
Middleware(
ContentSizeLimitMiddleware,
max_content_size=1024 * 32,
),
],
routes=[
Route(
"/graphql", graphql_app.handle_request, methods=["GET", "POST", "OPTIONS"]
),
WebSocketRoute("/ws/graphql", graphql_app.handle_websocket),
Mount("/assets", StaticFiles(directory="build/client/assets"), name="assets"),
Mount("/favicon.ico", FileResponse("build/client/favicon.ico")),
Route("/{path:path}", FileResponse("build/client/index.html")),
],
)