Skip to content

Instantly share code, notes, and snippets.

@Omar-Eses
Created October 20, 2024 08:40
Show Gist options
  • Select an option

  • Save Omar-Eses/7a4f14e80bc2a4528af6e9919e3ad919 to your computer and use it in GitHub Desktop.

Select an option

Save Omar-Eses/7a4f14e80bc2a4528af6e9919e3ad919 to your computer and use it in GitHub Desktop.
Convert Image To Base64 in TypeScript with comments for better explanation
/**
* 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