2026-02-22 00:03:35 +01:00

18 lines
597 B
JavaScript

import { typedView } from './array.js'
import { assertU8 } from './fallback/_utils.js'
import * as js from './fallback/hex.js'
const { toHex: webHex } = Uint8Array.prototype // Modern engines have this
export function toHex(arr) {
assertU8(arr)
if (arr.length === 0) return ''
if (webHex && arr.toHex === webHex) return arr.toHex()
return js.toHex(arr)
}
// Unlike Buffer.from(), throws on invalid input
export const fromHex = Uint8Array.fromHex
? (str, format = 'uint8') => typedView(Uint8Array.fromHex(str), format)
: (str, format = 'uint8') => typedView(js.fromHex(str), format)