28 lines
709 B
JavaScript
28 lines
709 B
JavaScript
|
module.exports = function hexdump(ab) {
|
||
|
var ui8 = new Uint8Array(ab);
|
||
|
var bytecount = 0;
|
||
|
var head = ' 0 1 2 3 4 5 6 7 8 9 A B C D E F';
|
||
|
var trail;
|
||
|
var str = [].slice.call(ui8).map(function (i) {
|
||
|
var h = i.toString(16);
|
||
|
if (h.length < 2) {
|
||
|
h = '0' + h;
|
||
|
}
|
||
|
return h;
|
||
|
}).join('').match(/.{1,2}/g).join(' ').match(/.{1,48}/g).map(function (str) {
|
||
|
var lead = bytecount.toString(16);
|
||
|
bytecount += 16;
|
||
|
|
||
|
while (lead.length < 7) {
|
||
|
lead = '0' + lead;
|
||
|
}
|
||
|
|
||
|
return lead + ' ' + str;
|
||
|
}).join('\n');
|
||
|
trail = ab.byteLength.toString(16);
|
||
|
while (trail.length < 7) {
|
||
|
trail = '0' + trail;
|
||
|
}
|
||
|
return head + '\n' + str + '\n' + trail;
|
||
|
};
|