export type BrowserEncoding = 'hex' | 'base64' | 'utf8' ; const decoder = new TextDecoder ( ) ; const encoders = { base64 : data => btoa ( String . fromCharCode ( ... data ) ) , hex : data => { let out = '' ; for ( const byte of data ) { if ( byte < 0x10 ) { out += '0' ; } out += byte . toString ( 16 ) ; } return out ; } , utf8 : data => decoder . decode ( data ) , } ; hidden export const mustGetEncoder = ( encoding ) => { const encoder = encoders [ encoding ] ; if ( ! encoder ) { throw new Error ( `Unknown encoding ${ encoding }` ) ; } return encoder ; } ;