UNPKG

vastra-radiator-valve

Version:

Node.js library to query and configure Vastra's smart radiator valves.

51 lines (50 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uuidToAddress = exports.chunk = exports.sleepAsync = exports.withTimeout = exports.TimeoutToken = void 0; var TimeoutToken = /** @class */ (function () { function TimeoutToken(timeout) { this.timeout = timeout; this.timedOut = false; } return TimeoutToken; }()); exports.TimeoutToken = TimeoutToken; function withTimeout(promise, token) { return new Promise(function (resolve) { token.timedOut = false; var id = setTimeout(function () { token.timedOut = true; resolve(null); }, token.timeout); promise.then(resolve).finally(function () { clearTimeout(id); }); }); } exports.withTimeout = withTimeout; function sleepAsync(time) { return new Promise(function (resolve) { return setTimeout(resolve, time); }); } exports.sleepAsync = sleepAsync; function chunk(array, maxChunkSize) { var chunks = []; var numberOfChunks = Math.ceil(array.length / maxChunkSize); for (var chunkIndex = 0; chunkIndex < numberOfChunks; chunkIndex++) { var relativeOffset = chunkIndex * maxChunkSize; chunks.push(array.slice(relativeOffset, relativeOffset + maxChunkSize)); } return chunks; } exports.chunk = chunk; // `abcdefgh` -> `ab:cd:ef:gh` function uuidToAddress(uuid) { var addr = ""; for (var i = 0; i < uuid.length; i++) { addr += uuid[i] + uuid[++i]; if (i !== uuid.length - 1) { addr += ":"; } } return addr; } exports.uuidToAddress = uuidToAddress;