1 | export const connect = async (button) => {
|
2 | import("./install-dialog.js");
|
3 | let port;
|
4 | try {
|
5 | port = await navigator.serial.requestPort();
|
6 | }
|
7 | catch (err) {
|
8 | if (err.name === "NotFoundError") {
|
9 | import("./no-port-picked/index").then((mod) => mod.openNoPortPickedDialog(() => connect(button)));
|
10 | return;
|
11 | }
|
12 | alert(`Error: ${err.message}`);
|
13 | return;
|
14 | }
|
15 | if (!port) {
|
16 | return;
|
17 | }
|
18 | try {
|
19 | await port.open({ baudRate: 115200 });
|
20 | }
|
21 | catch (err) {
|
22 | alert(err.message);
|
23 | return;
|
24 | }
|
25 | const el = document.createElement("ewt-install-dialog");
|
26 | el.port = port;
|
27 | el.manifestPath = button.manifest || button.getAttribute("manifest");
|
28 | el.overrides = button.overrides;
|
29 | el.addEventListener("closed", () => {
|
30 | port.close();
|
31 | }, { once: true });
|
32 | document.body.appendChild(el);
|
33 | };
|