aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@exodus/bytes/hex.js
blob: a99c935862123d1363161ab06f545f745e20453e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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)