src/helpers/files.ts
import { IUpploadFile } from "./interfaces";
/**
* Convert a blob to a native File
* @param blob - Blob to convert to file
* @param fileName - Name of the file
* @param lastModified - Date modified
*/
const safeBlobToFile = (blob: Blob, fileName?: string, lastModified?: Date) => {
try {
return new File([blob], fileName || "file_name", {
lastModified: (lastModified || new Date()).getTime(),
type: blob.type,
});
} catch (error) {
return blob;
}
};
export const blobToUpploadFile = (
blob: Blob,
name?: string,
type?: string,
lastModified?: Date
) => {
const result: IUpploadFile = {
name,
blob,
lastModified,
type,
};
return result;
};
export const safeUpploadFileToFile = (file: IUpploadFile) => {
const blob = file.blob;
file.lastModified = file.lastModified || new Date();
return safeBlobToFile(blob, file.name, file.lastModified);
};