mirror of
https://github.com/jwetzell/psn-js.git
synced 2026-08-21 06:59:15 +00:00
convert to typescript
This commit is contained in:
@@ -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;
|
||||
};
|
||||
Reference in New Issue
Block a user