Created
October 20, 2024 08:40
-
-
Save Omar-Eses/7a4f14e80bc2a4528af6e9919e3ad919 to your computer and use it in GitHub Desktop.
Convert Image To Base64 in TypeScript with comments for better explanation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * further explanation on promise, resolve and reject can be found here: `https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise` | |
| * further explanation on FileReader can be found here: `https://developer.mozilla.org/en-US/docs/Web/API/FileReader` | |
| */ | |
| // the funciton accepts a paramerter of type File, and a promise to define return type | |
| export const ImageToBase64 = (file: File): Promise<string> => { | |
| // define a reader of type FileReader | |
| const reader = new FileReader(); | |
| // | |
| return new Promise((resolve, reject) => { | |
| reader.readAsDataURL(file); // Start reading the file passed as a parameter | |
| // define event listeners to track reader upon completion or error | |
| // `onloadend` event is triggered when reading operation is completed | |
| reader.onloadend = () => { | |
| // check that reader has a result | |
| if (reader.result) { | |
| // resolve promise with the result | |
| resolve(reader.result.toString()); | |
| } else { | |
| // reject the promise with a new error (you can do some another action here) | |
| reject(new Error("error reading file")); | |
| } | |
| }; | |
| // `onerror` event is triggered upon error reading file | |
| reader.onerror = () => { | |
| reject(new Error("Error reading file")); // also reject the promise with a new error | |
| }; | |
| }); | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment