UNPKG

ws2801-webserver

Version:

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

31 lines (30 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateLedStrip = void 0; function validateLedStrip(amountOfLeds, ledStrip) { if (amountOfLeds !== ledStrip.length) { throw new Error(`The led strip consists of ${amountOfLeds} leds, but led colors that should be set consists of ${ledStrip.length} leds.`); } const invalidLedIndexes = []; for (let ledIndex = 0; ledIndex < ledStrip.length; ledIndex++) { const ledColor = ledStrip[ledIndex]; if (ledColor.red == undefined || typeof ledColor.red !== 'number' || ledColor.red < 0 || ledColor.red > 255) { invalidLedIndexes.push(ledIndex); } if (ledColor.green == undefined || typeof ledColor.green !== 'number' || ledColor.green < 0 || ledColor.green > 255) { invalidLedIndexes.push(ledIndex); } if (ledColor.blue == undefined || typeof ledColor.blue !== 'number' || ledColor.blue < 0 || ledColor.blue > 255) { invalidLedIndexes.push(ledIndex); } } if (invalidLedIndexes.length !== 0) { let errorMessage = `Some led colors of the led strip are invalid. The following leds are invalid:\n`; for (const invalidLedIndex of invalidLedIndexes) { errorMessage += `${invalidLedIndex}: ${JSON.stringify(ledStrip[invalidLedIndex])}, `; } errorMessage = errorMessage.substring(0, errorMessage.length - 2); throw new Error(errorMessage); } } exports.validateLedStrip = validateLedStrip;