vastra-radiator-valve
Version:
Node.js library to query and configure Vastra's smart radiator valves.
51 lines (50 loc) • 1.63 kB
JavaScript
;
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;