From 7e438bbbae74fd40d5f55634e4fc5cd32a3d28e1 Mon Sep 17 00:00:00 2001 From: Brandon Liu Date: Wed, 29 Dec 2021 12:36:21 +0800 Subject: [PATCH] Expose more methods in js library --- js/index.src.mjs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/js/index.src.mjs b/js/index.src.mjs index 31b5f8c..9eb3cc6 100644 --- a/js/index.src.mjs +++ b/js/index.src.mjs @@ -10,7 +10,7 @@ const getUint48 = (dataview, pos) => { return shift(dataview.getUint32(pos+2,true),16) + dataview.getUint16(pos,true) } -const parseHeader = dataview => { +export const parseHeader = dataview => { var magic = dataview.getUint16(0,true) if (magic !== 19792) { throw new Error('File header does not begin with "PM"') @@ -21,7 +21,18 @@ const parseHeader = dataview => { return {version:version,json_size:json_size,root_entries:root_entries} } -const bytesToMap = dataview => { +export const parseEntry = (dataview,i) => { + var z_raw = dataview.getUint8(i,true) + var z = z_raw & 127 + var is_dir = z_raw >> 7 + var x = getUint24(dataview,i+1) + var y = getUint24(dataview,i+4) + var offset = getUint48(dataview,i+7) + var length = dataview.getUint32(i+13,true) + return [z,x,y,offset,length,is_dir] +} + +export const bytesToMap = dataview => { let m = new Map() for (var i = 0; i < dataview.byteLength; i+=17) { var z_raw = dataview.getUint8(i,true)