35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
// Minimal error definitions used across the BLE module.
|
|
// Keep this file small and avoid runtime dependencies; it's mainly for typing and
|
|
// simple runtime error construction used by native platform code.
|
|
|
|
export enum AkBluetoothErrorCode {
|
|
UnknownError = 0,
|
|
DeviceNotFound = 1,
|
|
ServiceNotFound = 2,
|
|
CharacteristicNotFound = 3,
|
|
ConnectionTimeout = 4,
|
|
Unspecified = 99
|
|
}
|
|
|
|
export class AkBleErrorImpl extends Error {
|
|
public code: AkBluetoothErrorCode;
|
|
public detail: any|null;
|
|
constructor(code: AkBluetoothErrorCode, message?: string, detail: any|null = null) {
|
|
super(message ?? AkBleErrorImpl.defaultMessage(code));
|
|
this.name = 'AkBleError';
|
|
this.code = code;
|
|
this.detail = detail;
|
|
}
|
|
static defaultMessage(code: AkBluetoothErrorCode) {
|
|
switch (code) {
|
|
case AkBluetoothErrorCode.DeviceNotFound: return 'Device not found';
|
|
case AkBluetoothErrorCode.ServiceNotFound: return 'Service not found';
|
|
case AkBluetoothErrorCode.CharacteristicNotFound: return 'Characteristic not found';
|
|
case AkBluetoothErrorCode.ConnectionTimeout: return 'Connection timed out';
|
|
case AkBluetoothErrorCode.UnknownError: default: return 'Unknown Bluetooth error';
|
|
}
|
|
}
|
|
}
|
|
|
|
export default AkBleErrorImpl;
|