@neurodevs/node-ble-scanner
TypeScript icon, indicating that this package has built-in type declarations

0.7.4 • Public • Published

node-ble-scanner

Scan for Bluetooth Low Energy (BLE) peripherals

Installation

Install the package using npm:

npm install @neurodevs/node-ble-scanner

Or yarn:

yarn add @neurodevs/node-ble-scanner

Usage

Basic Usage

To scan for specific BLE peripherals by their uuids:

import { BleScannerImpl } from '@neurodevs/node-ble-scanner'

async function discoverPeripherals() {
    const uuids = ['uuid-for-your-bluetooth-peripheral']

    const scanner = BleScannerImpl.Create()
    const peripherals = await scanner.scanForPeripherals(uuids)

    console.log('Discovered Peripherals:', peripherals)
}

Testing

For testing, you can replace the BleScannerImpl class with test doubles:

import {
  BleScannerImpl,
  FakeBleScanner,
  SpyBleScanner
} from '@neurodevs/node-ble-scanner'

// Use for a fake implementation with validations for user interactions
BleScannerImpl.Class = FakeBleScanner

// Use to test real behavior with enhanced internal visibility
BleScannerImpl.Class = SpyBleScanner

const scanner = BleScannerImpl.Create()

If you use the SpyBleScanner test double (or any other test double you create which extends BleScannerImpl), then it will use the real noble library unless otherwise set, which is an open-source package that manages the lower-level Bluetooth connection.

You can also fake noble so that you do not require actual BLE hardware in your tests:

import {
    BleScannerImpl,
    FakeNoble,
} from '@neurodevs/node-ble-scanner'

BleScannerImpl.noble = new FakeNoble()

const scanner = BleScannerImpl.Create()

Readme

Keywords

none

Package Sidebar

Install

npm i @neurodevs/node-ble-scanner

Weekly Downloads

11

Version

0.7.4

License

none

Unpacked Size

128 kB

Total Files

74

Last publish

Collaborators

  • ericthecurious