@ginden/blinkstick-v2
Version:
Improved Blickstick API for Node.js
25 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findAll = findAll;
const discovery_filter_1 = require("../discovery-filter");
const get_lib_usb_1 = require("./get-lib-usb");
const lib_usb_transport_1 = require("../../transport/lib-usb-transport");
const create_blinkstick_libusb_1 = require("./create-blinkstick-libusb");
/**
* @summary Finds all BlinkStick devices using libusb.
* @category Discovery
*/
async function findAll(filter = () => true) {
const actualFilter = (0, discovery_filter_1.createDiscoverFilterFn)(filter);
const libUsb = (0, get_lib_usb_1.getLibUsb)();
const devices = libUsb.getDeviceList();
const devicesRaw = await Promise.all(devices.map(async (device) => {
const deviceInfo = await lib_usb_transport_1.LibUsbTransport.calculateMinimalDeviceInfo(device);
if (!actualFilter(deviceInfo)) {
return null;
}
return (0, create_blinkstick_libusb_1.createBlinkstickLibUsb)(device);
}));
return devicesRaw.filter((device) => device !== null);
}
//# sourceMappingURL=find-all.js.map