class gbxHeader { has_magic = true version = -1 format = -1 compressionofRefTable = -1 compressionOfrefBofy = -1 compressionTextFlag = '' id = -1 userData = [] numNodes = 0 is_vaild = false parse(buff) { let header_magic = buff.readString(3); if (header_magic != 'GBX') { console.log("Header Magic Mismatch: " + header_magic); return } this.has_magic = true this.version = buff.readUInt16(); console.log(this.version) if (this.version < 5 || this.version >7 ) { console.log("Unsupported version") return; } this.format = buff.readInt8(); if (this.format != 66) { console.log("Unsupported format") return; } this.compressionofRefTable = buff.readInt8(); if (this.compressionofRefTable != 67 && this.compressionofRefTable != 85) { console.log("Unsupported compression format, Ref") return; } this.compressionofRefBody = buff.readInt8(); if (this.compressionofRefBody != 67 && this.compressionofRefBody != 85) { console.log("Unsupported compression format, Body") return; } this.compressionTextFlag = ''; if (this.version >= 4) { this.compressionTextFlag = buff.readString(1); } this.id = buff.readUInt32(); console.log(this.id) if (this.version >=6) { this.userData = buff.readBytes(); } this.numNodes = buff.readUInt32(); this.is_vaild = true } } module.exports = gbxHeader;