better errror handling

This commit is contained in:
Abhinav 2022-05-17 01:10:00 +05:30
parent 346352a780
commit 2183af8796
5 changed files with 24 additions and 24 deletions

View file

@ -1,5 +1,5 @@
import { NULL_EXTRACTED_METADATA, NULL_LOCATION } from 'constants/upload';
import { Location } from 'types/upload';
import { ElectronFile, Location } from 'types/upload';
import exifr from 'exifr';
import piexif from 'piexifjs';
import { FileTypeInfo } from 'types/upload';
@ -28,11 +28,20 @@ interface Exif {
}
export async function getExifData(
receivedFile: File,
receivedFile: File | ElectronFile,
fileTypeInfo: FileTypeInfo
): Promise<ParsedExtractedMetadata> {
let parsedEXIFData = NULL_EXTRACTED_METADATA;
try {
if (!(receivedFile instanceof File)) {
receivedFile = new File(
[await receivedFile.blob()],
receivedFile.name,
{
lastModified: receivedFile.lastModified,
}
);
}
const exifData = await getRawExif(receivedFile, fileTypeInfo);
if (!exifData) {
return parsedEXIFData;

View file

@ -43,7 +43,7 @@ export async function readFile(
rawFile,
fileTypeInfo
);
logUploadInfo(`reading file datal${getFileNameSize(rawFile)} `);
logUploadInfo(`reading file data ${getFileNameSize(rawFile)} `);
let filedata: Uint8Array | DataStream;
if (!(rawFile instanceof File)) {
if (rawFile.size > MULTIPART_PART_SIZE) {

View file

@ -37,15 +37,6 @@ export async function extractMetadata(
) {
let extractedMetadata: ParsedExtractedMetadata = NULL_EXTRACTED_METADATA;
if (fileTypeInfo.fileType === FILE_TYPE.IMAGE) {
if (!(receivedFile instanceof File)) {
receivedFile = new File(
[await receivedFile.blob()],
receivedFile.name,
{
lastModified: receivedFile.lastModified,
}
);
}
extractedMetadata = await getExifData(receivedFile, fileTypeInfo);
} else if (fileTypeInfo.fileType === FILE_TYPE.VIDEO) {
logUploadInfo(

View file

@ -33,10 +33,10 @@ export async function generateThumbnail(
let hasStaticThumbnail = false;
let canvas = document.createElement('canvas');
let thumbnail: Uint8Array;
if (!(file instanceof File)) {
file = new File([await file.blob()], file.name);
}
try {
if (!(file instanceof File)) {
file = new File([await file.blob()], file.name);
}
if (fileTypeInfo.fileType === FILE_TYPE.IMAGE) {
const isHEIC = isFileHEIC(fileTypeInfo.exactType);
canvas = await generateImageThumbnail(file, isHEIC);

View file

@ -6,16 +6,16 @@ import { logUploadInfo } from 'utils/upload';
export async function getVideoMetadata(file: File | ElectronFile) {
let videoMetadata = NULL_EXTRACTED_METADATA;
if (!(file instanceof File)) {
logUploadInfo('get file blob for video metadata extraction');
file = new File([await file.blob()], file.name, {
lastModified: file.lastModified,
});
logUploadInfo(
'get file blob for video metadata extraction successfully'
);
}
try {
if (!(file instanceof File)) {
logUploadInfo('get file blob for video metadata extraction');
file = new File([await file.blob()], file.name, {
lastModified: file.lastModified,
});
logUploadInfo(
'get file blob for video metadata extraction successfully'
);
}
videoMetadata = await ffmpegService.extractMetadata(file);
} catch (e) {
logError(e, 'failed to get video metadata');