add timeout to heic conversion

This commit is contained in:
Abhinav 2022-03-09 12:44:07 +05:30
parent faad7f554e
commit 206b15b962
2 changed files with 17 additions and 13 deletions

View file

@ -6,12 +6,20 @@ export async function convertHEIC(
fileBlob: Blob, fileBlob: Blob,
format: string format: string
): Promise<Blob> { ): Promise<Blob> {
return await new Promise((resolve, reject) => {
const main = async () => {
const filedata = new Uint8Array(await fileBlob.arrayBuffer()); const filedata = new Uint8Array(await fileBlob.arrayBuffer());
setTimeout(() => { const timeout = setTimeout(() => {
throw Error('wait time exceeded'); reject(Error('wait time exceeded'));
}, WAIT_TIME_IN_MICROSECONDS); }, WAIT_TIME_IN_MICROSECONDS);
console.time('convertHEIC');
const result = await HeicConvert({ buffer: filedata, format }); const result = await HeicConvert({ buffer: filedata, format });
console.timeEnd('convertHEIC');
clearTimeout(timeout);
const convertedFileData = new Uint8Array(result); const convertedFileData = new Uint8Array(result);
const convertedFileBlob = new Blob([convertedFileData]); const convertedFileBlob = new Blob([convertedFileData]);
return convertedFileBlob; resolve(convertedFileBlob);
};
main();
});
} }

View file

@ -14,7 +14,6 @@ import { FileUploadResults, MAX_FILE_SIZE_SUPPORTED } from 'constants/upload';
import { FileWithCollection, BackupedFile, UploadFile } from 'types/upload'; import { FileWithCollection, BackupedFile, UploadFile } from 'types/upload';
import { logUploadInfo } from 'utils/upload'; import { logUploadInfo } from 'utils/upload';
import { convertToHumanReadable } from 'utils/billing'; import { convertToHumanReadable } from 'utils/billing';
import { sleep } from 'utils/common';
interface UploadResponse { interface UploadResponse {
fileUploadResult: FileUploadResults; fileUploadResult: FileUploadResults;
@ -72,7 +71,7 @@ export default async function uploader(
); );
if (file.hasStaticThumbnail) { if (file.hasStaticThumbnail) {
throw Error('thumbnail generation failed'); metadata.hasStaticThumbnail = true;
} }
const fileWithMetadata = { const fileWithMetadata = {
localID, localID,
@ -80,9 +79,6 @@ export default async function uploader(
thumbnail: file.thumbnail, thumbnail: file.thumbnail,
metadata, metadata,
}; };
UIService.increaseFileUploaded();
await sleep(100);
return { fileUploadResult: FileUploadResults.ALREADY_UPLOADED };
logUploadInfo(`encryptAsset ${fileNameSize}`); logUploadInfo(`encryptAsset ${fileNameSize}`);
const encryptedFile = await UploadService.encryptAsset( const encryptedFile = await UploadService.encryptAsset(