UNPKG

ws2801-webserver

Version:

A ready-to-use webserver for the WS2801-Pi package.

37 lines (36 loc) 1.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const vm_1 = __importDefault(require("vm")); const ws2801_pi_1 = __importDefault(require("ws2801-pi")); const amountOfLeds = parseInt(process.argv[2]); const animationScript = process.argv[3]; const startBrightness = process.argv[4] === 'auto' ? 'auto' : parseInt(process.argv[4]); async function runAnimation() { const ledController = new ws2801_pi_1.default(amountOfLeds); ledController.setBrightness(startBrightness); // tslint:disable-next-line: no-any process.on('message', (message) => { if (message.action === 'set-brightness') { ledController.setBrightness(message.brightness).show(); } else if (message.action === 'get-led-strip') { process.send({ action: 'get-led-strip-answer', ledStrip: ledController.getLedStrip() }); } }); const context = vm_1.default.createContext(Object.assign({}, global, { ledController: ledController, ledAmount: amountOfLeds, exports: exports, module: module, console: console, })); ledController.onLedStripChanged((ledStrip) => { process.send({ action: 'led-strip-changed', ledStrip: ledStrip }); }); await vm_1.default.runInContext(animationScript, context); process.send('animation-finished'); } runAnimation();