import {Result} from 'result' import logger from 'log' const log = logger('misc') export function a2str(buf: Uint8Array) : string { // @ts-ignore return String.fromCharCode.apply(null, buf) } export function str2a(str: string) : Uint8Array { const buf = new Uint8Array(str.length) for (let i= 0, strLen = str.length; i < strLen; i++) { buf[i] = str.charCodeAt(i) } return buf } export function a2b64(buf: Uint8Array) : string { return btoa(a2str(buf)) } export function b642a(b64: string) : Result { log.trace('b642a') try { return Result.ok(str2a(atob(b64))) } catch (e) { log.warn('b64 decode failed') log.debug(`error : ${e}`) } return Result.error([]) }