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);
 | 
						|
        })
 | 
						|
    );
 | 
						|
}
 |