UNPKG

blinkstick-ts

Version:
98 lines (97 loc) 3.19 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BlinkSticks = void 0; const usb = __importStar(require("node-hid")); const blinkstick_1 = require("./blinkstick"); const VENDOR_ID = 0x20a0; const PRODUCT_ID = 0x41e5; class BlinkSticks { /** * Find first attached BlinkStick. * * @example * var blinkstick = require('blinkstick'); * var led = blinkstick.findFirst(); * * @static * @method findFirst * @return {BlinkStick|undefined} The first BlinkStick, if found. */ findFirst() { const devices = this.findBlinkSticks(); return devices ? devices[0] : undefined; } /** * Find all attached BlinkStick devices. * * @example * var blinkstick = require('blinkstick'); * var leds = blinkstick.findAll(); * * @static * @method findAll * @return {Array} BlinkSticks. */ findAll() { return this.findBlinkSticks(); } /** * Returns the serial numbers of all attached BlinkStick devices. * * @static * @method findAllSerials * @return {Array} Serial numbers. */ findAllSerials() { return this.findBlinkSticks().map((d) => d.serial); } /** * Find BlinkStick device based on serial number. * * @static * @method findBySerial * @param {Number} serial Serial number. * @param {Function} callback Callback when BlinkStick has been found */ findBySerial(serial) { return this.findBlinkSticks().find((d) => d.serial == serial); } /** * Find BlinkSticks using a filter. * * @method findBlinkSticks * @param {Function} [filter] Filter function. * @return {Array} BlickStick objects. */ findBlinkSticks(predicate = (v) => v) { return usb.devices() .filter((d) => d.vendorId == VENDOR_ID) .filter((d) => d.productId == PRODUCT_ID) .filter(predicate) .map((d) => new blinkstick_1.BlinkStick(d.path, d.serialNumber, d.manufacturer, d.product)); } } exports.BlinkSticks = BlinkSticks;