Update browser version of HexEncoder parse()

pull/225/head
jimh 2025-07-14 14:14:13 -07:00
rodzic 8f8c023fef
commit 9d04b3519a
1 zmienionych plików z 15 dodań i 16 usunięć

Wyświetl plik

@ -69,17 +69,22 @@ const HexEncoder = isNode
if (!hexString) {
return null;
}
if (hexString.length % 2 !== 0) throw "Invalid hexString";
const arrayBuffer = new Uint8Array(hexString.length / 2);
if (hexString.length % 2 !== 0) {
throw new Error("Invalid hex string length");
}
const bytes = new Uint8Array(hexString.length / 2);
for (let i = 0; i < hexString.length; i += 2) {
const byteValue = parseInt(hexString.substring(i, i + 2), 16);
if (isNaN(byteValue)) {
throw "Invalid hexString";
const byte = parseInt(hexString.substring(i, i + 2), 16);
if (isNaN(byte)) {
throw new Error("Invalid character in hex string.");
}
arrayBuffer[i / 2] = byteValue;
bytes[i / 2] = byte;
}
return arrayBuffer;
return bytes;
},
/**
@ -91,16 +96,10 @@ const HexEncoder = isNode
if (!bytes) {
return null;
}
const hexBytes = [];
for (let i = 0; i < bytes.length; ++i) {
let byteString = bytes[i].toString(16);
if (byteString.length < 2) {
byteString = "0" + byteString;
}
hexBytes.push(byteString);
}
return hexBytes.join("");
return Array.from(bytes)
.map((byte) => byte.toString(16).padStart(2, "0"))
.join("");
},
};
exports.HexEncoder = HexEncoder;