23 lines
628 B
TypeScript
23 lines
628 B
TypeScript
type Uint8ArrayWithToHex = Uint8Array & {
|
|
toHex?: () => string;
|
|
};
|
|
|
|
const uint8ArrayPrototype = Uint8Array.prototype as Uint8ArrayWithToHex;
|
|
|
|
if (typeof uint8ArrayPrototype.toHex !== 'function') {
|
|
Object.defineProperty(Uint8Array.prototype, 'toHex', {
|
|
value: function toHex(this: Uint8Array): string {
|
|
const hex = new Array<string>(this.length);
|
|
|
|
for (let index = 0; index < this.length; index += 1) {
|
|
const value = this[index].toString(16);
|
|
hex[index] = value.length === 1 ? `0${value}` : value;
|
|
}
|
|
|
|
return hex.join('');
|
|
},
|
|
writable: true,
|
|
configurable: true,
|
|
});
|
|
}
|