removed unneeded fileReader passed to functions

This commit is contained in:
Abhinav-grd 2021-08-18 11:08:20 +05:30
parent 9b49e15d5c
commit 744a308963
6 changed files with 17 additions and 55 deletions

View file

@ -28,12 +28,12 @@ const NULL_PARSED_METADATA_JSON: ParsedMetaDataJSON = {
};
export async function extractMetadata(
reader: FileReader,
worker,
receivedFile: globalThis.File,
fileType: FILE_TYPE
) {
const { location, creationTime } = await getExifData(
reader,
worker,
receivedFile,
fileType
);

View file

@ -8,25 +8,17 @@ const TYPE_IMAGE = 'image';
const EDITED_FILE_SUFFIX = '-edited';
const CHUNK_SIZE_FOR_TYPE_DETECTION = 4100;
export async function getFileData(
worker,
reader: FileReader,
file: globalThis.File
) {
export async function getFileData(worker, file: globalThis.File) {
if (file.size > MULTIPART_PART_SIZE) {
return getFileStream(worker, reader, file, FILE_READER_CHUNK_SIZE);
return getFileStream(worker, file, FILE_READER_CHUNK_SIZE);
} else {
return await worker.getUint8ArrayView(file);
}
}
export async function getFileType(
worker,
reader: FileReader,
receivedFile: globalThis.File
) {
export async function getFileType(worker, receivedFile: globalThis.File) {
let fileType: FILE_TYPE;
const mimeType = await getMimeType(worker, reader, receivedFile);
const mimeType = await getMimeType(worker, receivedFile);
const majorType = mimeType?.split('/')[0].toLowerCase();
switch (majorType) {
case TYPE_IMAGE:
@ -57,33 +49,19 @@ export function getFileOriginalName(file: globalThis.File) {
return originalName;
}
async function getMimeType(worker, reader: FileReader, file: globalThis.File) {
async function getMimeType(worker, file: globalThis.File) {
const fileChunkBlob = file.slice(0, CHUNK_SIZE_FOR_TYPE_DETECTION);
return getMimeTypeFromBlob(worker, reader, fileChunkBlob);
return getMimeTypeFromBlob(worker, fileChunkBlob);
}
export async function getMimeTypeFromBlob(
worker,
reader: FileReader,
fileBlob: Blob
) {
export async function getMimeTypeFromBlob(worker, fileBlob: Blob) {
const initialFiledata = await worker.getUint8ArrayView(fileBlob);
const result = await FileType.fromBuffer(initialFiledata);
return result?.mime;
}
function getFileStream(
worker,
reader: FileReader,
file: globalThis.File,
chunkSize: number
) {
const fileChunkReader = fileChunkReaderMaker(
worker,
reader,
file,
chunkSize
);
function getFileStream(worker, file: globalThis.File, chunkSize: number) {
const fileChunkReader = fileChunkReaderMaker(worker, file, chunkSize);
const stream = new ReadableStream<Uint8Array>({
async pull(controller: ReadableStreamDefaultController) {
@ -104,7 +82,6 @@ function getFileStream(
async function* fileChunkReaderMaker(
worker,
reader: FileReader,
file: globalThis.File,
chunkSize: number
) {

View file

@ -11,7 +11,6 @@ const WAIT_TIME_THUMBNAIL_GENERATION = 10 * 1000;
export async function generateThumbnail(
worker,
reader: FileReader,
file: globalThis.File,
fileType: FILE_TYPE,
isHEIC: boolean

View file

@ -157,15 +157,14 @@ class UploadManager {
this.cryptoWorkers[i] = cryptoWorker;
uploadProcesses.push(
this.uploadNextFileInQueue(
await new this.cryptoWorkers[i].comlink(),
new FileReader()
await new this.cryptoWorkers[i].comlink()
)
);
}
await Promise.all(uploadProcesses);
}
private async uploadNextFileInQueue(worker: any, fileReader: FileReader) {
private async uploadNextFileInQueue(worker: any) {
while (this.filesToBeUploaded.length > 0) {
const fileWithCollection = this.filesToBeUploaded.pop();
const existingFilesInCollection =
@ -178,7 +177,6 @@ class UploadManager {
fileWithCollection.collection = collection;
const { fileUploadResult, file } = await uploader(
worker,
fileReader,
existingFilesInCollection,
fileWithCollection
);

View file

@ -100,15 +100,10 @@ class UploadService {
async readFile(
worker,
reader: FileReader,
rawFile: globalThis.File,
collection: Collection
): Promise<FileInMemory> {
const { fileType, mimeType } = await getFileType(
worker,
reader,
rawFile
);
const { fileType, mimeType } = await getFileType(worker, rawFile);
if (fileType === FILE_TYPE.OTHERS) {
throw Error(CustomError.UNSUPPORTED_FILE_FORMAT);
}
@ -117,7 +112,6 @@ class UploadService {
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
worker,
reader,
rawFile,
fileType,
isHEIC
@ -129,7 +123,7 @@ class UploadService {
getMetadataMapKey(collection.id, originalName)
) ?? {};
const extractedMetadata: MetadataObject = await extractMetadata(
reader,
worker,
rawFile,
fileType
);
@ -143,7 +137,7 @@ class UploadService {
extractedMetadata[key] = value;
}
const filedata = await getFileData(worker, reader, rawFile);
const filedata = await getFileData(worker, rawFile);
return {
filedata,

View file

@ -22,7 +22,6 @@ interface UploadResponse {
}
export default async function uploader(
worker: any,
reader: FileReader,
existingFilesInCollection: File[],
fileWithCollection: FileWithCollection
): Promise<UploadResponse> {
@ -33,12 +32,7 @@ export default async function uploader(
let file: FileInMemory = null;
let encryptedFile: EncryptedFile = null;
try {
file = await UploadService.readFile(
worker,
reader,
rawFile,
collection
);
file = await UploadService.readFile(worker, rawFile, collection);
if (fileAlreadyInCollection(existingFilesInCollection, file)) {
UIService.setFileProgress(rawFile.name, FileUploadResults.SKIPPED);