Skip to content

Commit ebd769c

Browse files
committed
Copy EventTarget functions into navigator.serial
1 parent 6f425cb commit ebd769c

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/polyfill.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,5 +293,8 @@ class Serial extends EventTarget {
293293
// copy functions instead of creating a new object,
294294
// so that references to navigator.serial are always valid
295295
const serial = new Serial()
296+
navigator.serial.addEventListener = serial.addEventListener.bind(serial)
297+
navigator.serial.dispatchEvent = serial.dispatchEvent.bind(serial)
296298
navigator.serial.getPorts = serial.getPorts.bind(serial)
299+
navigator.serial.removeEventListener = serial.removeEventListener.bind(serial)
297300
navigator.serial.requestPort = serial.requestPort.bind(serial)

src/ui/test.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
</head>
88

99
<body>
10+
<button onclick="getPorts()">await navigator.serial.getPorts()</button>
1011
<button onclick="requestPort()">port = await navigator.serial.requestPort()</button>
1112
<button onclick="openPort()">await port.open({baudRate: 115200})</button>
1213
<button onclick="closePort()">await port.close()</button>
@@ -26,8 +27,31 @@
2627
<button onclick="rread()">await reader.read()</button>
2728

2829
<script>
30+
navigator.serial.addEventListener("connect", (e) => {
31+
console.log("navigator.serial -> connect", e.target)
32+
})
33+
navigator.serial.addEventListener("disconnect", (e) => {
34+
console.log("navigator.serial -> disconnect", e.target)
35+
})
36+
navigator.serial.onconnect = (e) => {
37+
console.log("navigator.serial -> onconnect", e.target)
38+
}
39+
navigator.serial.ondisconnect = (e) => {
40+
console.log("navigator.serial -> ondisconnect", e.target)
41+
}
42+
43+
async function getPorts() {
44+
console.log(await navigator.serial.getPorts())
45+
}
46+
2947
async function requestPort() {
3048
console.log(window.port = await navigator.serial.requestPort())
49+
window.port.addEventListener("connect", (e) => {
50+
console.log("window.port -> connect", e.target)
51+
})
52+
window.port.addEventListener("disconnect", (e) => {
53+
console.log("window.port -> disconnect", e.target)
54+
})
3155
}
3256

3357
async function openPort() {

0 commit comments

Comments
 (0)