removed unneeded fileReader passed to functions
This commit is contained in:
parent
9b49e15d5c
commit
744a308963
|
@ -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
|
||||
);
|
||||
|
|
|
@ -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
|
||||
) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue