Added listeners to the constructing kw options (#2044)

This commit is contained in:
Andrea Giammarchi
2024-05-03 16:34:21 +02:00
committed by GitHub
parent d1d1c5740f
commit c49cb9231b
4 changed files with 15 additions and 10 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@pyscript/core",
"version": "0.4.26",
"version": "0.4.27",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@pyscript/core",
"version": "0.4.26",
"version": "0.4.27",
"license": "APACHE-2.0",
"dependencies": {
"@ungap/with-resolvers": "^0.1.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@pyscript/core",
"version": "0.4.26",
"version": "0.4.27",
"type": "module",
"description": "PyScript",
"module": "./index.js",

View File

@@ -30,21 +30,24 @@ class WebSocket(object):
def __init__(self, **kw):
url = kw["url"]
socket = None
if protocols in kw:
socket = js.WebSocket.new(url, kw[protocols])
else:
socket = js.WebSocket.new(url)
object.__setattr__(self, "_ws", socket)
for t in ["onclose", "onerror", "onmessage", "onopen"]:
if t in kw:
socket[t] = kw[t]
def __getattr__(self, attr):
return getattr(self._ws, attr)
def __setattr__(self, attr, value):
if attr == "onmessage":
setattr(self._ws, attr, lambda e: value(EventMessage(e)))
self._ws[attr] = lambda e: value(EventMessage(e))
else:
setattr(self._ws, attr, value)
self._ws[attr] = value
def close(self, **kw):
if code in kw and reason in kw:

View File

@@ -22,10 +22,12 @@
print(event.type)
document.documentElement.classList.add("ok")
ws = WebSocket(url="ws://localhost:5037/")
ws.onopen = onopen
ws.onmessage = onmessage
ws.onclose = onclose
ws = WebSocket(
url="ws://localhost:5037/",
onopen=onopen,
onmessage=onmessage,
onclose=onclose
)
</script>
</body>
</html>