function get_files(
{ names_start_offset, payload_start_offset },
entries,
path = ":/"
) {
let r = [];
for (const e of entries) {
const p =
path +
get_name(names_start_offset + e.nameOffset) +
(e.directory ? "/" : "");
if (e.directory) {
r = r.concat(
get_files({ names_start_offset, payload_start_offset }, e.children, p)
);
} else {
const last_modified = new Date(e.lastModified);
const view = new DataView(data);
const data_start = payload_start_offset + e.dataOffset;
const size = view.getInt32(data_start, false);
const arr = data.slice(data_start + 4, data_start + 4 + size);
r.push({
name: p,
last_modified,
data: new Uint8Array(arr)
});
}
}
return r;
}