23 lines
673 B
JavaScript
23 lines
673 B
JavaScript
export function encodeBase64(input) {
|
|
if (Uint8Array.prototype.toBase64) {
|
|
return input.toBase64();
|
|
}
|
|
const CHUNK_SIZE = 0x8000;
|
|
const arr = [];
|
|
for (let i = 0; i < input.length; i += CHUNK_SIZE) {
|
|
arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));
|
|
}
|
|
return btoa(arr.join(''));
|
|
}
|
|
export function decodeBase64(encoded) {
|
|
if (Uint8Array.fromBase64) {
|
|
return Uint8Array.fromBase64(encoded);
|
|
}
|
|
const binary = atob(encoded);
|
|
const bytes = new Uint8Array(binary.length);
|
|
for (let i = 0; i < binary.length; i++) {
|
|
bytes[i] = binary.charCodeAt(i);
|
|
}
|
|
return bytes;
|
|
}
|