blinkstick-ts
Version:
BlinkStick TypeScript implementation
98 lines (97 loc) • 3.19 kB
JavaScript
;
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;