@ginden/blinkstick-v2
Version:
Improved Blickstick API for Node.js
56 lines • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findFirstSync = findFirstSync;
exports.findFirst = findFirstSync;
exports.findFirstAsync = findFirstAsync;
exports.findByIdAsync = findByIdAsync;
const create_blinkstick_async_1 = require("../create/create-blinkstick-async");
const find_blink_sticks_1 = require("./find-blink-sticks");
const find_raw_devices_1 = require("./find-raw-devices");
const discovery_filter_1 = require("../../discovery-filter");
/**
* @summary Find first attached BlinkStick and create a BlinkStickSync object.
* @remarks Optionally takes a filter (device name or function) to find a specific BlinkStick.
* Returns null if no BlinkStick is found.
* @category Discovery
*/
function findFirstSync(discoveryFilter = () => true) {
const actualFilter = (0, discovery_filter_1.createDiscoverFilterFn)(discoveryFilter);
return (0, find_blink_sticks_1.findBlinkSticks)(actualFilter)[0] ?? null;
}
/**
* @summary Find first attached BlinkStick asynchronously and create a BlinkStickAsync instance.
* @category Discovery
*/
async function findFirstAsync(discoveryFilter = () => true) {
const devices = await (0, find_raw_devices_1.findRawDevicesAsync)();
const actualFilter = (0, discovery_filter_1.createDiscoverFilterFn)(discoveryFilter);
for (const device of devices) {
if (actualFilter(device)) {
return await (0, create_blinkstick_async_1.createBlinkstickAsync)(device);
}
}
return null;
}
/**
* @summary Finds a blinkstick by its ID.
* @param id The ID of the blinkstick to find, created via `blinkstick.id`.
* @returns The found blinkstick or null if not found.
* @category Discovery
*/
async function findByIdAsync(id) {
const devices = await (0, find_raw_devices_1.findRawDevicesAsync)();
for (const device of devices) {
const blinkstick = await (0, create_blinkstick_async_1.createBlinkstickAsync)(device);
const deviceId = await blinkstick.id.getId();
if (deviceId === id) {
return blinkstick;
}
else {
// Close the device if it's not the one we're looking for
await blinkstick.close();
}
}
return null;
}
//# sourceMappingURL=find-first.js.map