listing-facebook/client/app/features/base64.ts

28 lines
805 B
TypeScript

export const toBase64 = (file: File) =>
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = reject;
});
export async function urlToBase64(blobUrl: string): Promise<string> {
return fetch(blobUrl)
.then((res) => res.blob())
.then(
(blob) =>
new Promise<string>((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => {
if (typeof reader.result === "string") {
resolve(reader.result);
} else {
reject("Failed to convert blob to base64");
}
};
reader.onerror = reject;
reader.readAsDataURL(blob);
})
);
}