hex-lite
Version:
isomorphic hex library in 256 bytes
49 lines (43 loc) • 1.34 kB
JavaScript
function fromUint8Array(uint8Array) {
var view = new DataView(uint8Array.buffer);
var bl = view.byteLength, largeLength = bl - bl % 4;
var hex = '', d = 0;
for (; d < largeLength; d += 4) {
hex += ('00000000' + view.getUint32(d).toString(16)).slice(-8);
}
for (; d < bl; d++) {
var c = view.getUint8(d).toString(16);
hex += c.length < 2 ? '0' + c : c;
}
return hex;
}
function toUint8Array(str) {
if (str.length % 2)
{ throw new Error('invalid hex:' + str); }
var sl = str.length, largeLength = sl - sl % 8;
var uint8Array = new Uint8Array(sl / 2);
var view = new DataView(uint8Array.buffer);
var s = 0;
for (; s < largeLength; s += 8) {
view.setUint32(s / 8, parseInt(str.substr(s, 8), 16));
}
for (; s < sl; s += 2) {
view.setUint8(s / 2, parseInt(str.substr(s, 2), 16));
}
return uint8Array;
}
function fromBuffer(buffer) {
return fromUint8Array(new Uint8Array(buffer));
}
function toBuffer(str) {
return toUint8Array(str).buffer;
}
var browserFast = {
fromUint8Array: fromUint8Array,
toUint8Array: toUint8Array,
fromBuffer: fromBuffer,
toBuffer: toBuffer
}
export { fromUint8Array, toUint8Array, fromBuffer, toBuffer };
export default browserFast;
//# sourceMappingURL=hex-lite.mjs.map