@aptpod/iscp-ts
Version:
iSCP 2.0 client library for TypeScript
28 lines • 1.09 kB
JavaScript
export class SegmentedMessageEncoder {
constructor() {
this.encode = (data, sequenceNumber, segmentedMessageSize) => {
const ranges = [];
for (let i = 0; i < data.byteLength;) {
const start = i;
const end = Math.min(i + segmentedMessageSize, data.byteLength);
ranges.push({
start,
end,
});
i = end;
}
console.log('ranges', ranges);
return ranges.map(({ start, end }, i) => {
const dataLength = end - start;
const array = new Uint8Array(8 + dataLength);
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
view.setUint32(0, sequenceNumber, false);
view.setUint16(4, ranges.length - 1, false);
view.setUint16(6, i, false);
array.set(data.slice(start, end), 8);
return array;
});
};
}
}
//# sourceMappingURL=index.js.map