This commit is contained in:
Joel Wetzell
2026-07-13 14:09:21 -05:00
parent 4bb1e87e03
commit 466228fb4a
62 changed files with 2157 additions and 1851 deletions
+29 -24
View File
@@ -1,33 +1,38 @@
import { Constants } from '../../constants.js';
import type { DataTrackerListChunk, DataTrackerListChunkData } from '../../models/data/data-tracker-list-chunk.js';
import type {
DataTrackerListChunk,
DataTrackerListChunkData,
} from '../../models/data/data-tracker-list-chunk.js';
import type { DataTrackerChunk } from '../../models/index.js';
import { Decoders } from '../index.js';
export default (buffer: Uint8Array): DataTrackerListChunk => {
const chunk = Decoders.Chunk(buffer);
const trackers: DataTrackerChunk[] = [];
const chunk = Decoders.Chunk(buffer);
const trackers: DataTrackerChunk[] = [];
// TODO(jwetzell): add error handling
if (chunk.chunkData) {
let offset = 0;
while (offset < chunk.chunkData.length) {
const trackerChunk = Decoders.DataTrackerChunk(chunk.chunkData.subarray(offset));
offset += Constants.CHUNK_HEADER_SIZE;
if (trackerChunk.chunk.header.dataLen) {
offset += trackerChunk.chunk.header.dataLen;
}
if (trackerChunk.chunk.header.id !== undefined) {
trackers.push(trackerChunk);
}
}
}
// TODO(jwetzell): add error handling
if (chunk.chunkData) {
let offset = 0;
while (offset < chunk.chunkData.length) {
const trackerChunk = Decoders.DataTrackerChunk(
chunk.chunkData.subarray(offset)
);
offset += Constants.CHUNK_HEADER_SIZE;
if (trackerChunk.chunk.header.dataLen) {
offset += trackerChunk.chunk.header.dataLen;
}
if (trackerChunk.chunk.header.id !== undefined) {
trackers.push(trackerChunk);
}
}
}
const data: DataTrackerListChunkData = {
trackers,
};
const data: DataTrackerListChunkData = {
trackers,
};
return {
chunk,
data,
};
return {
chunk,
data,
};
};