28 lines
805 B
TypeScript
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);
|
|
})
|
|
);
|
|
}
|