UNPKG

@ginden/blinkstick-v2

Version:
56 lines 2.28 kB
"use strict"; 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