UNPKG

web-bluetooth

Version:

Library for interacting with Bluetooth 4.0 devices through the browser.

46 lines (42 loc) 2.91 kB
/** errorHandler - Consolodates error message configuration and logic * * @param {string} errorKey - maps to a detailed error message * @param {object} nativeError - the native API error object, if present * @param {} alternate - * */ function errorHandler(errorKey, nativeError, alternate) { const errorMessages = { add_characteristic_exists_error: `Characteristic ${alternate} already exists.`, characteristic_error: `Characteristic ${alternate} not found. Add ${alternate} to device using addCharacteristic or try another characteristic.`, connect_gatt: `Could not connect to GATT. Device might be out of range. Also check to see if filters are vaild.`, connect_server: `Could not connect to server on device.`, connect_service: `Could not find service.`, disconnect_timeout: `Timed out. Could not disconnect.`, disconnect_error: `Could not disconnect from device.`, improper_characteristic_format: `${alternate} is not a properly formatted characteristic.`, improper_properties_format: `${alternate} is not a properly formatted properties array.`, improper_service_format: `${alternate} is not a properly formatted service.`, issue_disconnecting: `Issue disconnecting with device.`, new_characteristic_missing_params: `${alternate} is not a fully supported characteristic. Please provide an associated primary service and at least one property.`, no_device: `No instance of device found.`, no_filters: `No filters found on instance of Device. For more information, please visit http://sabertooth.io/#method-newdevice`, no_read_property: `No read property on characteristic: ${alternate}.`, no_write_property: `No write property on this characteristic.`, not_connected: `Could not disconnect. Device not connected.`, parsing_not_supported: `Parsing not supported for characterstic: ${alternate}.`, read_error: `Cannot read value on the characteristic.`, _returnCharacteristic_error: `Error accessing characteristic ${alternate}.`, start_notifications_error: `Not able to read stream of data from characteristic: ${alternate}.`, start_notifications_no_notify: `No notify property found on this characteristic: ${alternate}.`, stop_notifications_not_notifying: `Notifications not established for characteristic: ${alternate} or you have not started notifications.`, stop_notifications_error: `Issue stopping notifications for characteristic: ${alternate} or you have not started notifications.`, user_cancelled: `User cancelled the permission request.`, uuid_error: `Invalid UUID. For more information on proper formatting of UUIDs, visit https://webbluetoothcg.github.io/web-bluetooth/#uuids`, write_error: `Could not change value of characteristic: ${alternate}.`, write_permissions: `${alternate} characteristic does not have a write property.` } throw new Error(errorMessages[errorKey]); return false; } module.exports = errorHandler;