summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/decky_loader/loader.py1
-rw-r--r--backend/decky_loader/utilities.py5
-rw-r--r--backend/decky_loader/wsrouter.py8
3 files changed, 8 insertions, 6 deletions
diff --git a/backend/decky_loader/loader.py b/backend/decky_loader/loader.py
index 7f81777f..e5a5cc7b 100644
--- a/backend/decky_loader/loader.py
+++ b/backend/decky_loader/loader.py
@@ -18,6 +18,7 @@ if TYPE_CHECKING:
from .injector import get_gamepadui_tab
from .plugin.plugin import PluginWrapper
+from .wsrouter import WSRouter
Plugins = dict[str, PluginWrapper]
ReloadQueue = Queue[Tuple[str, str, bool | None] | Tuple[str, str]]
diff --git a/backend/decky_loader/utilities.py b/backend/decky_loader/utilities.py
index 0e3e9fb0..12dabd68 100644
--- a/backend/decky_loader/utilities.py
+++ b/backend/decky_loader/utilities.py
@@ -82,7 +82,7 @@ class Utilities:
context.ws.add_route("utilities/get_tab_id", self.get_tab_id)
context.ws.add_route("utilities/get_user_info", self.get_user_info)
- async def _handle_server_method_call(self, request):
+ async def _handle_server_method_call(self, request: web.Request):
method_name = request.match_info["method_name"]
try:
args = await request.json()
@@ -182,7 +182,8 @@ class Utilities:
style.parentNode.removeChild(style);
}})()
""", False)
-
+
+ assert result
if "exceptionDetails" in result["result"]:
raise result["result"]["exceptionDetails"]
diff --git a/backend/decky_loader/wsrouter.py b/backend/decky_loader/wsrouter.py
index b5ed3c2b..034667ae 100644
--- a/backend/decky_loader/wsrouter.py
+++ b/backend/decky_loader/wsrouter.py
@@ -1,13 +1,13 @@
from logging import getLogger
-from asyncio import AbstractEventLoop, Future, create_task
+from asyncio import AbstractEventLoop, create_task
from aiohttp import WSMsgType, WSMessage
from aiohttp.web import Application, WebSocketResponse, Request, Response, get
from enum import IntEnum
-from typing import Callable, Dict, Any, cast, TypeVar, Type
+from typing import Callable, Coroutine, Dict, Any, cast, TypeVar, Type
from dataclasses import dataclass
from traceback import format_exc
@@ -38,7 +38,7 @@ class Message:
DataType = TypeVar("DataType")
-Route = Callable[..., Future[Any]]
+Route = Callable[..., Coroutine[Any, Any, Any]]
class WSRouter:
def __init__(self, loop: AbstractEventLoop, server_instance: Application) -> None:
@@ -133,7 +133,7 @@ class WSRouter:
return ws
# DataType defaults to None so that if a plugin opts in to strict pyright checking and attempts to pass data witbout specifying the type (or any), the type check fails
- async def emit(self, event: str, data: DataType | None = None, data_type: Type[DataType] = None):
+ async def emit(self, event: str, data: DataType | None = None, data_type: Type[DataType]|None = None):
self.logger.debug('Firing frontend event %s with args %s', data)
await self.write({ "type": MessageType.EVENT.value, "event": event, "data": data })