@bota-dev/react-native-sdk 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,6 +20,19 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
20
20
 
21
21
  const log = _logger.logger.tag('BleManager');
22
22
 
23
+ /** Extract a human-readable message from a BleError (message is often null) */
24
+ function describeBleError(err) {
25
+ if (!err) return 'Unknown error';
26
+ const ble = err;
27
+ if (ble.message) return ble.message;
28
+ if (ble.reason) return ble.reason;
29
+ const parts = [];
30
+ if (ble.errorCode !== undefined) parts.push(`errorCode=${ble.errorCode}`);
31
+ if (ble.iosErrorCode != null) parts.push(`ios=${ble.iosErrorCode}`);
32
+ if (ble.androidErrorCode != null) parts.push(`android=${ble.androidErrorCode}`);
33
+ return parts.length > 0 ? parts.join(', ') : 'Unknown BLE error';
34
+ }
35
+
23
36
  /**
24
37
  * Events emitted by BleManager
25
38
  */
@@ -32,6 +45,7 @@ class BleManager extends _eventemitter.default {
32
45
  disconnectSubscriptions = new Map();
33
46
  connectedDevices = new Map();
34
47
  discoveredDevices = new Map();
48
+ pendingConnects = new Map();
35
49
  isScanning = false;
36
50
  cachedState = _reactNativeBlePlx.State.Unknown;
37
51
  constructor() {
@@ -275,13 +289,11 @@ class BleManager extends _eventemitter.default {
275
289
  }
276
290
 
277
291
  /**
278
- * Connect to a device
292
+ * Connect to a device.
293
+ * Deduplicates concurrent calls — if a connect is already in progress
294
+ * for this device, callers share the same promise.
279
295
  */
280
296
  async connect(deviceId) {
281
- log.info('Connecting to device', {
282
- deviceId
283
- });
284
-
285
297
  // Check if already connected
286
298
  if (this.connectedDevices.has(deviceId)) {
287
299
  log.debug('Device already connected', {
@@ -289,6 +301,27 @@ class BleManager extends _eventemitter.default {
289
301
  });
290
302
  return this.connectedDevices.get(deviceId);
291
303
  }
304
+
305
+ // Deduplicate: if a connect is already in progress, return the same promise
306
+ const pending = this.pendingConnects.get(deviceId);
307
+ if (pending) {
308
+ log.debug('Connection already in progress, sharing promise', {
309
+ deviceId
310
+ });
311
+ return pending;
312
+ }
313
+ const connectPromise = this.doConnect(deviceId);
314
+ this.pendingConnects.set(deviceId, connectPromise);
315
+ try {
316
+ return await connectPromise;
317
+ } finally {
318
+ this.pendingConnects.delete(deviceId);
319
+ }
320
+ }
321
+ async doConnect(deviceId) {
322
+ log.info('Connecting to device', {
323
+ deviceId
324
+ });
292
325
  try {
293
326
  // Connect with timeout
294
327
  const device = await this.manager.connectToDevice(deviceId, {
@@ -307,21 +340,21 @@ class BleManager extends _eventemitter.default {
307
340
 
308
341
  // Set up disconnect listener
309
342
  const disconnectSub = device.onDisconnected((error, disconnectedDevice) => {
343
+ const errorMsg = error ? describeBleError(error) : undefined;
310
344
  log.info('Device disconnected', {
311
345
  deviceId: disconnectedDevice.id,
312
- error: error?.message
346
+ error: errorMsg
313
347
  });
314
348
  this.connectedDevices.delete(disconnectedDevice.id);
315
349
  this.disconnectSubscriptions.get(disconnectedDevice.id)?.remove();
316
350
  this.disconnectSubscriptions.delete(disconnectedDevice.id);
317
- this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(error.message || 'Device disconnected') : undefined);
351
+ this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(errorMsg || 'Device disconnected') : undefined);
318
352
  });
319
353
  this.disconnectSubscriptions.set(deviceId, disconnectSub);
320
354
  this.emit('deviceConnected', deviceId);
321
355
  return device;
322
356
  } catch (error) {
323
- const bleError = error;
324
- const msg = bleError.message || 'Connection failed';
357
+ const msg = describeBleError(error);
325
358
  log.error('Connection failed', new Error(msg), {
326
359
  deviceId
327
360
  });
@@ -346,9 +379,8 @@ class BleManager extends _eventemitter.default {
346
379
  try {
347
380
  await device.cancelConnection();
348
381
  } catch (error) {
349
- const bleError = error;
350
382
  log.warn('Disconnect error (may be expected)', {
351
- error: bleError.message
383
+ error: describeBleError(error)
352
384
  });
353
385
  }
354
386
  this.connectedDevices.delete(deviceId);
@@ -401,8 +433,7 @@ class BleManager extends _eventemitter.default {
401
433
  }
402
434
  return _buffer.Buffer.from(characteristic.value, 'base64');
403
435
  } catch (error) {
404
- const bleError = error;
405
- const msg = bleError.message || 'Unknown BLE error';
436
+ const msg = describeBleError(error);
406
437
  log.error('Read characteristic failed', new Error(msg), {
407
438
  deviceId,
408
439
  serviceUuid,
@@ -428,8 +459,7 @@ class BleManager extends _eventemitter.default {
428
459
  await device.writeCharacteristicWithoutResponseForService(serviceUuid, characteristicUuid, base64Data);
429
460
  }
430
461
  } catch (error) {
431
- const bleError = error;
432
- const msg = bleError.message || 'Unknown BLE error';
462
+ const msg = describeBleError(error);
433
463
  log.error('Write characteristic failed', new Error(msg), {
434
464
  deviceId,
435
465
  serviceUuid,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeBlePlx","require","_buffer","_eventemitter","_interopRequireDefault","_constants","_errors","_logger","_parsers","e","__esModule","default","log","logger","tag","BleManager","EventEmitter","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","isScanning","cachedState","State","Unknown","constructor","manager","RNBleManager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","BluetoothError","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","SCAN_TIMEOUT","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","undefined","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","Buffer","length","parseDeviceType","parseFirmwareVersion","parsePairingState","deviceId","discoveredAt","connect","has","connectToDevice","CONNECTION_TIMEOUT","requestMTU","MAX_MTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","message","delete","remove","Error","bleError","msg","DeviceError","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","DEFAULT_MTU","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","errorCode","reason","destroy","sub","keys","catch","removeAllListeners","exports","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeBlePlx","require","_buffer","_eventemitter","_interopRequireDefault","_constants","_errors","_logger","_parsers","e","__esModule","default","log","logger","tag","describeBleError","err","ble","message","reason","parts","errorCode","undefined","push","iosErrorCode","androidErrorCode","length","join","BleManager","EventEmitter","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","pendingConnects","isScanning","cachedState","State","Unknown","constructor","manager","RNBleManager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","BluetoothError","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","SCAN_TIMEOUT","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","Buffer","parseDeviceType","parseFirmwareVersion","parsePairingState","deviceId","discoveredAt","connect","has","pending","connectPromise","doConnect","delete","connectToDevice","CONNECTION_TIMEOUT","requestMTU","MAX_MTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","errorMsg","remove","Error","msg","DeviceError","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","DEFAULT_MTU","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","destroy","sub","keys","catch","removeAllListeners","exports","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,19 @@ import { logger } from '../utils/logger';
13
13
  import { parseDeviceType, parsePairingState, parseFirmwareVersion } from './parsers';
14
14
  const log = logger.tag('BleManager');
15
15
 
16
+ /** Extract a human-readable message from a BleError (message is often null) */
17
+ function describeBleError(err) {
18
+ if (!err) return 'Unknown error';
19
+ const ble = err;
20
+ if (ble.message) return ble.message;
21
+ if (ble.reason) return ble.reason;
22
+ const parts = [];
23
+ if (ble.errorCode !== undefined) parts.push(`errorCode=${ble.errorCode}`);
24
+ if (ble.iosErrorCode != null) parts.push(`ios=${ble.iosErrorCode}`);
25
+ if (ble.androidErrorCode != null) parts.push(`android=${ble.androidErrorCode}`);
26
+ return parts.length > 0 ? parts.join(', ') : 'Unknown BLE error';
27
+ }
28
+
16
29
  /**
17
30
  * Events emitted by BleManager
18
31
  */
@@ -25,6 +38,7 @@ export class BleManager extends EventEmitter {
25
38
  disconnectSubscriptions = new Map();
26
39
  connectedDevices = new Map();
27
40
  discoveredDevices = new Map();
41
+ pendingConnects = new Map();
28
42
  isScanning = false;
29
43
  cachedState = State.Unknown;
30
44
  constructor() {
@@ -268,13 +282,11 @@ export class BleManager extends EventEmitter {
268
282
  }
269
283
 
270
284
  /**
271
- * Connect to a device
285
+ * Connect to a device.
286
+ * Deduplicates concurrent calls — if a connect is already in progress
287
+ * for this device, callers share the same promise.
272
288
  */
273
289
  async connect(deviceId) {
274
- log.info('Connecting to device', {
275
- deviceId
276
- });
277
-
278
290
  // Check if already connected
279
291
  if (this.connectedDevices.has(deviceId)) {
280
292
  log.debug('Device already connected', {
@@ -282,6 +294,27 @@ export class BleManager extends EventEmitter {
282
294
  });
283
295
  return this.connectedDevices.get(deviceId);
284
296
  }
297
+
298
+ // Deduplicate: if a connect is already in progress, return the same promise
299
+ const pending = this.pendingConnects.get(deviceId);
300
+ if (pending) {
301
+ log.debug('Connection already in progress, sharing promise', {
302
+ deviceId
303
+ });
304
+ return pending;
305
+ }
306
+ const connectPromise = this.doConnect(deviceId);
307
+ this.pendingConnects.set(deviceId, connectPromise);
308
+ try {
309
+ return await connectPromise;
310
+ } finally {
311
+ this.pendingConnects.delete(deviceId);
312
+ }
313
+ }
314
+ async doConnect(deviceId) {
315
+ log.info('Connecting to device', {
316
+ deviceId
317
+ });
285
318
  try {
286
319
  // Connect with timeout
287
320
  const device = await this.manager.connectToDevice(deviceId, {
@@ -300,21 +333,21 @@ export class BleManager extends EventEmitter {
300
333
 
301
334
  // Set up disconnect listener
302
335
  const disconnectSub = device.onDisconnected((error, disconnectedDevice) => {
336
+ const errorMsg = error ? describeBleError(error) : undefined;
303
337
  log.info('Device disconnected', {
304
338
  deviceId: disconnectedDevice.id,
305
- error: error?.message
339
+ error: errorMsg
306
340
  });
307
341
  this.connectedDevices.delete(disconnectedDevice.id);
308
342
  this.disconnectSubscriptions.get(disconnectedDevice.id)?.remove();
309
343
  this.disconnectSubscriptions.delete(disconnectedDevice.id);
310
- this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(error.message || 'Device disconnected') : undefined);
344
+ this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(errorMsg || 'Device disconnected') : undefined);
311
345
  });
312
346
  this.disconnectSubscriptions.set(deviceId, disconnectSub);
313
347
  this.emit('deviceConnected', deviceId);
314
348
  return device;
315
349
  } catch (error) {
316
- const bleError = error;
317
- const msg = bleError.message || 'Connection failed';
350
+ const msg = describeBleError(error);
318
351
  log.error('Connection failed', new Error(msg), {
319
352
  deviceId
320
353
  });
@@ -339,9 +372,8 @@ export class BleManager extends EventEmitter {
339
372
  try {
340
373
  await device.cancelConnection();
341
374
  } catch (error) {
342
- const bleError = error;
343
375
  log.warn('Disconnect error (may be expected)', {
344
- error: bleError.message
376
+ error: describeBleError(error)
345
377
  });
346
378
  }
347
379
  this.connectedDevices.delete(deviceId);
@@ -394,8 +426,7 @@ export class BleManager extends EventEmitter {
394
426
  }
395
427
  return Buffer.from(characteristic.value, 'base64');
396
428
  } catch (error) {
397
- const bleError = error;
398
- const msg = bleError.message || 'Unknown BLE error';
429
+ const msg = describeBleError(error);
399
430
  log.error('Read characteristic failed', new Error(msg), {
400
431
  deviceId,
401
432
  serviceUuid,
@@ -421,8 +452,7 @@ export class BleManager extends EventEmitter {
421
452
  await device.writeCharacteristicWithoutResponseForService(serviceUuid, characteristicUuid, base64Data);
422
453
  }
423
454
  } catch (error) {
424
- const bleError = error;
425
- const msg = bleError.message || 'Unknown BLE error';
455
+ const msg = describeBleError(error);
426
456
  log.error('Write characteristic failed', new Error(msg), {
427
457
  deviceId,
428
458
  serviceUuid,
@@ -1 +1 @@
1
- {"version":3,"names":["BleManager","RNBleManager","State","Buffer","EventEmitter","DEFAULT_MTU","MAX_MTU","CONNECTION_TIMEOUT","SCAN_TIMEOUT","BluetoothError","DeviceError","logger","parseDeviceType","parsePairingState","parseFirmwareVersion","log","tag","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","isScanning","cachedState","Unknown","constructor","manager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","undefined","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","length","e","deviceId","discoveredAt","connect","has","connectToDevice","requestMTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","message","delete","remove","Error","bleError","msg","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","errorCode","reason","destroy","sub","keys","catch","removeAllListeners","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BleManager","RNBleManager","State","Buffer","EventEmitter","DEFAULT_MTU","MAX_MTU","CONNECTION_TIMEOUT","SCAN_TIMEOUT","BluetoothError","DeviceError","logger","parseDeviceType","parsePairingState","parseFirmwareVersion","log","tag","describeBleError","err","ble","message","reason","parts","errorCode","undefined","push","iosErrorCode","androidErrorCode","length","join","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","pendingConnects","isScanning","cachedState","Unknown","constructor","manager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","e","deviceId","discoveredAt","connect","has","pending","connectPromise","doConnect","delete","connectToDevice","requestMTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","errorMsg","remove","Error","msg","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","destroy","sub","keys","catch","removeAllListeners","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
@@ -23,6 +23,7 @@ export declare class BleManager extends EventEmitter<BleManagerEvents> {
23
23
  private disconnectSubscriptions;
24
24
  private connectedDevices;
25
25
  private discoveredDevices;
26
+ private pendingConnects;
26
27
  private isScanning;
27
28
  private cachedState;
28
29
  constructor();
@@ -63,9 +64,12 @@ export declare class BleManager extends EventEmitter<BleManagerEvents> {
63
64
  */
64
65
  private parseDiscoveredDevice;
65
66
  /**
66
- * Connect to a device
67
+ * Connect to a device.
68
+ * Deduplicates concurrent calls — if a connect is already in progress
69
+ * for this device, callers share the same promise.
67
70
  */
68
71
  connect(deviceId: string): Promise<Device>;
72
+ private doConnect;
69
73
  /**
70
74
  * Disconnect from a device
71
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BleManager.d.ts","sourceRoot":"","sources":["../../../../src/ble/BleManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BleManager.d.ts","sourceRoot":"","sources":["../../../../src/ble/BleManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bota-dev/react-native-sdk",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "description": "Bota React Native SDK for BLE device communication",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -35,6 +35,19 @@ import {
35
35
 
36
36
  const log = logger.tag('BleManager');
37
37
 
38
+ /** Extract a human-readable message from a BleError (message is often null) */
39
+ function describeBleError(err: BleError | Error | null | undefined): string {
40
+ if (!err) return 'Unknown error';
41
+ const ble = err as BleError;
42
+ if (ble.message) return ble.message;
43
+ if (ble.reason) return ble.reason;
44
+ const parts: string[] = [];
45
+ if (ble.errorCode !== undefined) parts.push(`errorCode=${ble.errorCode}`);
46
+ if ((ble as any).iosErrorCode != null) parts.push(`ios=${(ble as any).iosErrorCode}`);
47
+ if ((ble as any).androidErrorCode != null) parts.push(`android=${(ble as any).androidErrorCode}`);
48
+ return parts.length > 0 ? parts.join(', ') : 'Unknown BLE error';
49
+ }
50
+
38
51
  /**
39
52
  * Events emitted by BleManager
40
53
  */
@@ -54,6 +67,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
54
67
  private disconnectSubscriptions: Map<string, Subscription> = new Map();
55
68
  private connectedDevices: Map<string, Device> = new Map();
56
69
  private discoveredDevices: Map<string, DiscoveredDevice> = new Map();
70
+ private pendingConnects: Map<string, Promise<Device>> = new Map();
57
71
  private isScanning = false;
58
72
  private cachedState: State = State.Unknown;
59
73
 
@@ -303,17 +317,37 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
303
317
  }
304
318
 
305
319
  /**
306
- * Connect to a device
320
+ * Connect to a device.
321
+ * Deduplicates concurrent calls — if a connect is already in progress
322
+ * for this device, callers share the same promise.
307
323
  */
308
324
  async connect(deviceId: string): Promise<Device> {
309
- log.info('Connecting to device', { deviceId });
310
-
311
325
  // Check if already connected
312
326
  if (this.connectedDevices.has(deviceId)) {
313
327
  log.debug('Device already connected', { deviceId });
314
328
  return this.connectedDevices.get(deviceId)!;
315
329
  }
316
330
 
331
+ // Deduplicate: if a connect is already in progress, return the same promise
332
+ const pending = this.pendingConnects.get(deviceId);
333
+ if (pending) {
334
+ log.debug('Connection already in progress, sharing promise', { deviceId });
335
+ return pending;
336
+ }
337
+
338
+ const connectPromise = this.doConnect(deviceId);
339
+ this.pendingConnects.set(deviceId, connectPromise);
340
+
341
+ try {
342
+ return await connectPromise;
343
+ } finally {
344
+ this.pendingConnects.delete(deviceId);
345
+ }
346
+ }
347
+
348
+ private async doConnect(deviceId: string): Promise<Device> {
349
+ log.info('Connecting to device', { deviceId });
350
+
317
351
  try {
318
352
  // Connect with timeout
319
353
  const device = await this.manager.connectToDevice(deviceId, {
@@ -331,9 +365,10 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
331
365
 
332
366
  // Set up disconnect listener
333
367
  const disconnectSub = device.onDisconnected((error, disconnectedDevice) => {
368
+ const errorMsg = error ? describeBleError(error) : undefined;
334
369
  log.info('Device disconnected', {
335
370
  deviceId: disconnectedDevice.id,
336
- error: error?.message,
371
+ error: errorMsg,
337
372
  });
338
373
  this.connectedDevices.delete(disconnectedDevice.id);
339
374
  this.disconnectSubscriptions.get(disconnectedDevice.id)?.remove();
@@ -341,7 +376,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
341
376
  this.emit(
342
377
  'deviceDisconnected',
343
378
  disconnectedDevice.id,
344
- error ? new Error(error.message || 'Device disconnected') : undefined
379
+ error ? new Error(errorMsg || 'Device disconnected') : undefined
345
380
  );
346
381
  });
347
382
  this.disconnectSubscriptions.set(deviceId, disconnectSub);
@@ -349,8 +384,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
349
384
  this.emit('deviceConnected', deviceId);
350
385
  return device;
351
386
  } catch (error) {
352
- const bleError = error as BleError;
353
- const msg = bleError.message || 'Connection failed';
387
+ const msg = describeBleError(error as BleError);
354
388
  log.error('Connection failed', new Error(msg), { deviceId });
355
389
  throw DeviceError.connectionFailed(deviceId, new Error(msg));
356
390
  }
@@ -371,8 +405,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
371
405
  try {
372
406
  await device.cancelConnection();
373
407
  } catch (error) {
374
- const bleError = error as BleError;
375
- log.warn('Disconnect error (may be expected)', { error: bleError.message });
408
+ log.warn('Disconnect error (may be expected)', { error: describeBleError(error as BleError) });
376
409
  }
377
410
 
378
411
  this.connectedDevices.delete(deviceId);
@@ -436,8 +469,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
436
469
 
437
470
  return Buffer.from(characteristic.value, 'base64');
438
471
  } catch (error) {
439
- const bleError = error as BleError;
440
- const msg = bleError.message || 'Unknown BLE error';
472
+ const msg = describeBleError(error as BleError);
441
473
  log.error('Read characteristic failed', new Error(msg), {
442
474
  deviceId,
443
475
  serviceUuid,
@@ -484,8 +516,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
484
516
  );
485
517
  }
486
518
  } catch (error) {
487
- const bleError = error as BleError;
488
- const msg = bleError.message || 'Unknown BLE error';
519
+ const msg = describeBleError(error as BleError);
489
520
  log.error('Write characteristic failed', new Error(msg), {
490
521
  deviceId,
491
522
  serviceUuid,