UNPKG

@gmod/tabix

Version:

Read Tabix-indexed files, supports both .tbi and .csi indexes

30 lines (27 loc) 894 B
export default class VirtualOffset { public blockPosition: number public dataPosition: number constructor(blockPosition: number, dataPosition: number) { this.blockPosition = blockPosition // < offset of the compressed data block this.dataPosition = dataPosition // < offset into the uncompressed data } toString() { return `${this.blockPosition}:${this.dataPosition}` } compareTo(b: VirtualOffset) { return ( this.blockPosition - b.blockPosition || this.dataPosition - b.dataPosition ) } } export function fromBytes(bytes: Uint8Array, offset = 0) { return new VirtualOffset( bytes[offset + 7]! * 0x10000000000 + bytes[offset + 6]! * 0x100000000 + bytes[offset + 5]! * 0x1000000 + bytes[offset + 4]! * 0x10000 + bytes[offset + 3]! * 0x100 + bytes[offset + 2]!, (bytes[offset + 1]! << 8) | bytes[offset]!, ) }