From 8a144eee4b18be93f2f0812e489b46c96335a14c Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Wed, 2 Dec 2020 23:36:17 -0800 Subject: [PATCH] Use existing util to convert Uint8Array to base64 --- packages/webamp/js/aniParser.ts | 7 ++----- packages/webamp/js/utils.ts | 7 +++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/webamp/js/aniParser.ts b/packages/webamp/js/aniParser.ts index dc43150e..dd08c153 100644 --- a/packages/webamp/js/aniParser.ts +++ b/packages/webamp/js/aniParser.ts @@ -1,4 +1,5 @@ import { RIFFFile } from "riff-file"; +import * as Utils from "./utils"; import { unpackArray } from "byte-data"; type Chunk = { @@ -75,12 +76,8 @@ function parseMetadata(chunkData: Uint8Array) { }; } -function base64(u8: Uint8Array): string { - return window.btoa(String.fromCharCode.apply(null, u8)); -} - function urlFromData(arr: Uint8Array): string { - const arrBase64 = base64(arr); + const arrBase64 = Utils.base64FromDataArray(arr); return `data:image/x-win-bitmap;base64,${arrBase64}`; } diff --git a/packages/webamp/js/utils.ts b/packages/webamp/js/utils.ts index 8ef394ea..61a1d370 100644 --- a/packages/webamp/js/utils.ts +++ b/packages/webamp/js/utils.ts @@ -129,9 +129,12 @@ export const parseIni = (text: string): IniData => { export const clamp = (value: number, min: number, max: number): number => Math.min(Math.max(value, min), max); +export const base64FromDataArray = (dataArray: Uint8Array): string => { + return window.btoa(String.fromCharCode(...dataArray)); +}; + export const base64FromArrayBuffer = (arrayBuffer: ArrayBuffer): string => { - const dataView = new Uint8Array(arrayBuffer); - return window.btoa(String.fromCharCode(...dataView)); + return base64FromDataArray(new Uint8Array(arrayBuffer)); }; // https://stackoverflow.com/a/15832662/1263117