mirror of
https://github.com/meshcore-dev/meshcore.js.git
synced 2026-04-20 22:13:49 +00:00
Replace hand-written .d.ts with JSDoc + tsc auto-generation
- Delete hand-written index.d.ts that drifted from source - Add JSDoc type annotations to all source files - Create src/types.js with shared typedefs (SelfInfo, Contact, ContactMessage, ChannelInfo, RepeaterStats, etc.) - Add tsconfig.json for declaration generation - Add build:types script and prepublishOnly hook - Add GitHub Actions CI workflow for type checking - Use Uint8Array everywhere (no Buffer references) - Add semantic type aliases (EpochSeconds, Milliseconds, MilliVolts) - Add typed event overloads on Connection (on/once/off) - All 11 PR #15 review comments addressed
This commit is contained in:
parent
de31939a28
commit
2d4cb35e51
23 changed files with 988 additions and 212 deletions
|
|
@ -3,24 +3,31 @@ import Connection from "./connection.js";
|
|||
|
||||
class WebBleConnection extends Connection {
|
||||
|
||||
/** @param {any} bleDevice */
|
||||
constructor(bleDevice) {
|
||||
super();
|
||||
this.bleDevice = bleDevice;
|
||||
/** @type {any} */
|
||||
this.gattServer = null;
|
||||
/** @type {any} */
|
||||
this.rxCharacteristic = null;
|
||||
/** @type {any} */
|
||||
this.txCharacteristic = null;
|
||||
this.init();
|
||||
}
|
||||
|
||||
/** @returns {Promise<WebBleConnection | null | undefined>} */
|
||||
static async open() {
|
||||
|
||||
// ensure browser supports web bluetooth
|
||||
// @ts-ignore - Web Bluetooth API
|
||||
if(!navigator.bluetooth){
|
||||
alert("Web Bluetooth is not supported in this browser");
|
||||
return;
|
||||
}
|
||||
|
||||
// ask user to select device
|
||||
// @ts-ignore - Web Bluetooth API
|
||||
const device = await navigator.bluetooth.requestDevice({
|
||||
filters: [
|
||||
{
|
||||
|
|
@ -76,6 +83,7 @@ class WebBleConnection extends Connection {
|
|||
|
||||
}
|
||||
|
||||
/** @returns {Promise<void>} */
|
||||
async close() {
|
||||
try {
|
||||
this.gattServer?.disconnect();
|
||||
|
|
@ -85,6 +93,10 @@ class WebBleConnection extends Connection {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Uint8Array} bytes
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async write(bytes) {
|
||||
try {
|
||||
// fixme: NetworkError: GATT operation already in progress.
|
||||
|
|
@ -96,6 +108,10 @@ class WebBleConnection extends Connection {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Uint8Array} frame
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async sendToRadioFrame(frame) {
|
||||
this.emit("tx", frame);
|
||||
await this.write(frame);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue