mirror of
https://github.com/meshcore-dev/meshcore.js.git
synced 2026-04-20 22:13:49 +00:00
chore: enforce prettier configuration
In order to avoid reformatting of the code this PR add a prettier configuration as well as scripts to automatically format apply the rules
This commit is contained in:
parent
f6fea65063
commit
3f899c8445
19 changed files with 3477 additions and 3474 deletions
|
|
@ -1,105 +1,93 @@
|
|||
import SerialConnection from "./serial_connection.js";
|
||||
import SerialConnection from './serial_connection.js';
|
||||
|
||||
class WebSerialConnection extends SerialConnection {
|
||||
constructor(serialPort) {
|
||||
super();
|
||||
|
||||
constructor(serialPort) {
|
||||
this.serialPort = serialPort;
|
||||
this.reader = serialPort.readable.getReader();
|
||||
this.writable = serialPort.writable;
|
||||
this.readLoop();
|
||||
|
||||
super();
|
||||
// listen for disconnect
|
||||
this.serialPort.addEventListener('disconnect', () => {
|
||||
this.onDisconnected();
|
||||
});
|
||||
|
||||
this.serialPort = serialPort;
|
||||
this.reader = serialPort.readable.getReader();
|
||||
this.writable = serialPort.writable;
|
||||
this.readLoop();
|
||||
|
||||
// listen for disconnect
|
||||
this.serialPort.addEventListener("disconnect", () => {
|
||||
this.onDisconnected();
|
||||
});
|
||||
|
||||
// fire connected callback after constructor has returned
|
||||
setTimeout(async () => {
|
||||
await this.onConnected();
|
||||
}, 0);
|
||||
// fire connected callback after constructor has returned
|
||||
setTimeout(async () => {
|
||||
await this.onConnected();
|
||||
}, 0);
|
||||
}
|
||||
|
||||
static async open() {
|
||||
// ensure browser supports web serial
|
||||
if (!navigator.serial) {
|
||||
alert('Web Serial is not supported in this browser');
|
||||
return null;
|
||||
}
|
||||
|
||||
static async open() {
|
||||
// ask user to select device
|
||||
const serialPort = await navigator.serial.requestPort({
|
||||
filters: [],
|
||||
});
|
||||
|
||||
// ensure browser supports web serial
|
||||
if(!navigator.serial){
|
||||
alert("Web Serial is not supported in this browser");
|
||||
return null;
|
||||
}
|
||||
// open port
|
||||
await serialPort.open({
|
||||
baudRate: 115200,
|
||||
});
|
||||
|
||||
// ask user to select device
|
||||
const serialPort = await navigator.serial.requestPort({
|
||||
filters: [],
|
||||
});
|
||||
|
||||
// open port
|
||||
await serialPort.open({
|
||||
baudRate: 115200,
|
||||
});
|
||||
|
||||
return new WebSerialConnection(serialPort);
|
||||
return new WebSerialConnection(serialPort);
|
||||
}
|
||||
|
||||
async close() {
|
||||
// release reader lock
|
||||
try {
|
||||
this.reader.releaseLock();
|
||||
} catch (e) {
|
||||
// console.log("failed to release lock on serial port readable, ignoring...", e);
|
||||
}
|
||||
|
||||
async close() {
|
||||
|
||||
// release reader lock
|
||||
try {
|
||||
this.reader.releaseLock();
|
||||
} catch(e) {
|
||||
// console.log("failed to release lock on serial port readable, ignoring...", e);
|
||||
}
|
||||
|
||||
// close serial port
|
||||
try {
|
||||
await this.serialPort.close();
|
||||
} catch(e) {
|
||||
// console.log("failed to close serial port, ignoring...", e);
|
||||
}
|
||||
|
||||
// close serial port
|
||||
try {
|
||||
await this.serialPort.close();
|
||||
} catch (e) {
|
||||
// console.log("failed to close serial port, ignoring...", e);
|
||||
}
|
||||
}
|
||||
|
||||
/* override */ async write(bytes) {
|
||||
const writer = this.writable.getWriter();
|
||||
try {
|
||||
await writer.write(new Uint8Array(bytes));
|
||||
} finally {
|
||||
writer.releaseLock();
|
||||
}
|
||||
/* override */ async write(bytes) {
|
||||
const writer = this.writable.getWriter();
|
||||
try {
|
||||
await writer.write(new Uint8Array(bytes));
|
||||
} finally {
|
||||
writer.releaseLock();
|
||||
}
|
||||
}
|
||||
|
||||
async readLoop() {
|
||||
try {
|
||||
while(true){
|
||||
|
||||
// read bytes until reader indicates it's done
|
||||
const { value, done } = await this.reader.read();
|
||||
if(done){
|
||||
break;
|
||||
}
|
||||
|
||||
// pass to super class handler
|
||||
await this.onDataReceived(value);
|
||||
|
||||
}
|
||||
} catch(error) {
|
||||
|
||||
// ignore error if reader was released
|
||||
if(error instanceof TypeError){
|
||||
return;
|
||||
}
|
||||
|
||||
console.error('Error reading from serial port: ', error);
|
||||
|
||||
} finally {
|
||||
this.reader.releaseLock();
|
||||
async readLoop() {
|
||||
try {
|
||||
while (true) {
|
||||
// read bytes until reader indicates it's done
|
||||
const { value, done } = await this.reader.read();
|
||||
if (done) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// pass to super class handler
|
||||
await this.onDataReceived(value);
|
||||
}
|
||||
} catch (error) {
|
||||
// ignore error if reader was released
|
||||
if (error instanceof TypeError) {
|
||||
return;
|
||||
}
|
||||
|
||||
console.error('Error reading from serial port: ', error);
|
||||
} finally {
|
||||
this.reader.releaseLock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default WebSerialConnection;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue