blob: 8591e7ddf419bd37bd3a8f7e0327ed9f4cd01871 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
from asyncio import Queue
from enum import Enum
from typing import TypedDict, Optional
class HttpMessageType(Enum):
request = 'request'
response = 'response'
class Config(TypedDict):
subdomain: str
client_version: str
class HttpRequestData(TypedDict):
method: str
path: str
headers: list[tuple[str, str]]
body: Optional[str]
class HttpResponseData(TypedDict):
status: int
headers: list[tuple[str, str]]
body: Optional[str]
class HttpMessage(TypedDict):
type: HttpMessageType
identifier: str
payload: Config | HttpRequestData | HttpResponseData
class WebsocketMessageType(Enum):
connect = 'connect'
disconnect = 'disconnect'
message = 'message'
ack = 'ack'
class WebsocketConnectData(TypedDict):
path: str
headers: list[tuple[str, str]]
class WebsocketDisconnectData(TypedDict):
close_code: int
class WebsocketMessageData(TypedDict):
body: Optional[str]
class WebsocketMessage(TypedDict):
type: WebsocketMessageType
identifier: str
payload: WebsocketConnectData | WebsocketDisconnectData | WebsocketMessageData
class MessageType(Enum):
request = 'request'
response = 'response'
ws_connect = 'connect'
ws_disconnect = 'disconnect'
ws_message = 'message'
ws_ack = 'ack'
Message = HttpMessage | WebsocketMessage
class MemoryConnection(TypedDict):
requests: Queue[Message]
responses: Queue[Message]
|