mirror of
https://github.com/jwetzell/psn-js.git
synced 2026-09-07 23:39:16 +00:00
format
This commit is contained in:
+21
-19
@@ -1,29 +1,31 @@
|
||||
import type { Chunk } from '../models/chunk.js';
|
||||
|
||||
export default (buffer: Uint8Array): Chunk => {
|
||||
if (buffer.length < 4) {
|
||||
throw new Error('Chunk buffer must be at least 4 bytes');
|
||||
}
|
||||
if (buffer.length < 4) {
|
||||
throw new Error('Chunk buffer must be at least 4 bytes');
|
||||
}
|
||||
|
||||
const id = (buffer[1] << 8) + buffer[0];
|
||||
const id = (buffer[1] << 8) + buffer[0];
|
||||
|
||||
// NOTE(jwetzell): this data is split up as 1 bit for hasSubchunks and 15 bits for the dataLen
|
||||
const combinedLengthAndFlag = (buffer[3] << 8) + buffer[2];
|
||||
const hasSubchunks = combinedLengthAndFlag > 32768;
|
||||
const dataLen = hasSubchunks ? combinedLengthAndFlag - 32768 : combinedLengthAndFlag;
|
||||
// NOTE(jwetzell): this data is split up as 1 bit for hasSubchunks and 15 bits for the dataLen
|
||||
const combinedLengthAndFlag = (buffer[3] << 8) + buffer[2];
|
||||
const hasSubchunks = combinedLengthAndFlag > 32768;
|
||||
const dataLen = hasSubchunks
|
||||
? combinedLengthAndFlag - 32768
|
||||
: combinedLengthAndFlag;
|
||||
|
||||
const header = {
|
||||
id,
|
||||
dataLen,
|
||||
hasSubchunks,
|
||||
};
|
||||
const header = {
|
||||
id,
|
||||
dataLen,
|
||||
hasSubchunks,
|
||||
};
|
||||
|
||||
const chunkData = buffer.subarray(4, 4 + header.dataLen);
|
||||
const chunkData = buffer.subarray(4, 4 + header.dataLen);
|
||||
|
||||
const chunk = {
|
||||
chunkData,
|
||||
header,
|
||||
};
|
||||
const chunk = {
|
||||
chunkData,
|
||||
header,
|
||||
};
|
||||
|
||||
return chunk;
|
||||
return chunk;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user