import type { IReturnData, IUtils } from "./ReceiveSharingIntent.interfaces"; import MimeTypes from './mimeTypes'; class Utils implements IUtils{ sortData(data: any): Array { const objects: IReturnData = { filePath: null, text: null, weblink: null, mimeType: null, contentUri: null, fileName: null, extension: null }; const file = data; if (file.startsWith('text:')) { const text = file.replace("text:", ""); if (text.startsWith("http")) { const object: Array = [ { ...objects, weblink: text } ]; return object; } let object = [ { ...objects, text: text } ]; return object; } else if (file.startsWith('webUrl:')) { const weblink: string = file.replace("webUrl:", ""); const object: Array = [ { ...objects, weblink: weblink } ]; return object; } else { try { const files = JSON.parse(file) const object = []; for (let i = 0; i < files.length; i++) { const path = files[i].path; const obj = { ...objects, fileName: this.getFileName(path), extension: this.getExtension(path), mimeType: this.getMimeType(path), filePath: path } object.push(obj); } return object; } catch (error) { return [{ ...objects }]; } } } getFileName = (file:string): string => { return file.replace(/^.*(\\|\/|\:)/, ''); }; getExtension = (fileName:string): string => { return fileName.substr(fileName.lastIndexOf('.') + 1); } getMimeType = (file:string): string => { const ext = this.getExtension(file); const extension = "." + ext.toLowerCase(); const type = Object.entries(MimeTypes).find(mime => mime[0] === extension) if (type)return type[0]; return ""; } } export default Utils;