convert to typescript

This commit is contained in:
2023-09-14 22:43:25 -05:00
parent 4c19f5f7b9
commit f21bef263d
64 changed files with 1109 additions and 605 deletions
+23
View File
@@ -0,0 +1,23 @@
export interface Chunk {
id?: number;
has_subchunks?: boolean;
data_len?: number;
chunk_data?: Buffer;
}
export default (buffer: Buffer, dataDecoder: Function): Chunk => {
let offset = 0;
const chunk: Chunk = {};
chunk.id = buffer.readUInt16LE(offset);
offset += 2;
// NOTE(jwetzell): this data is split up as 1 bit for has_subchunks and 15 bits for the data_len
const combinedLengthAndFlag = buffer.readUInt16LE(offset);
chunk.has_subchunks = combinedLengthAndFlag > 32768;
chunk.data_len = chunk.has_subchunks ? combinedLengthAndFlag - 32768 : combinedLengthAndFlag;
offset += 2;
chunk.chunk_data = buffer.subarray(offset, offset + chunk.data_len);
dataDecoder(chunk);
return chunk;
};