base64-browser.ts 622 B

12345678910111213141516171819202122232425
  1. // utils/base64-browser
  2. import { getBytes } from "./data.js";
  3. import type { BytesLike } from "./data.js";
  4. export function decodeBase64(textData: string): Uint8Array {
  5. textData = atob(textData);
  6. const data = new Uint8Array(textData.length);
  7. for (let i = 0; i < textData.length; i++) {
  8. data[i] = textData.charCodeAt(i);
  9. }
  10. return getBytes(data);
  11. }
  12. export function encodeBase64(_data: BytesLike): string {
  13. const data = getBytes(_data);
  14. let textData = "";
  15. for (let i = 0; i < data.length; i++) {
  16. textData += String.fromCharCode(data[i]);
  17. }
  18. return btoa(textData);
  19. }