UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

33 lines 2.98 kB
export class ArrayConverter { constructor(_itemConverter, options) { this._itemConverter = _itemConverter; this.options = options; } get itemConverter() { return this._itemConverter; } decode(bytes) { let items = []; let sizeOfItem = this.options.sizeOfItem; for (let offset = 0; offset < bytes.length; offset += sizeOfItem) { let slice = bytes.subarray(offset, offset + sizeOfItem); let item = this._itemConverter.decode(slice); items.push(item); } return items; } encode(items) { let result = new Uint8Array(this.options.sizeOfItem * items.length); let offset = 0; for (let item of items) { let encodedItem = this._itemConverter.encode(item); // TODO if (encodedItem.length > this.options.sizeOfItem) { throw new Error(`Encoded item size overflow: ${encodedItem.length} (max is ${this.options.sizeOfItem})`); } result.set(encodedItem, offset); offset += this.options.sizeOfItem; } return result; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vY2xpZW50L2ltcGwvc3JjL2xpYi9jb252ZXJ0ZXIvYm9keS9hcnJheS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDWSxjQUF1QyxFQUN2QyxPQUE4QjtRQUQ5QixtQkFBYyxHQUFkLGNBQWMsQ0FBeUI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFDdkMsQ0FBQztJQUVKLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksS0FBSyxHQUFlLEVBQUUsQ0FBQztRQUMzQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN6QyxLQUFLLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFO1lBQ2hFLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQztZQUN4RCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN0QixJQUFJLFdBQVcsR0FBSSxJQUFJLENBQUMsY0FBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQ3BFLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDaEQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsV0FBVyxDQUFDLE1BQU0sWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUN4RixDQUFDO2FBQ0g7WUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YifQ==