import { FileType } from '../../common'; const parseFileType = (fileType: string): string => { if (fileType?.includes('.')) { return fileType.replace('.', '').toUpperCase(); } const mimeType = fileType?.split('/'); if (mimeType?.length > 1) { let parsedType = mimeType[1]; if (parsedType.toLocaleLowerCase() === 'jpeg') { parsedType = 'jpg, '.concat(parsedType).toUpperCase(); } return parsedType.toUpperCase(); } return fileType; }; const getAllowedFileTypes = (fileTypes: readonly FileType[] | readonly string[]): string[] => fileTypes.map((fileType: string) => { const splittedFileTypes = fileType?.split(','); if (splittedFileTypes?.length > 1) { // If `fileType` contains `format` and `mime` types, remove mime types, proceed only with format types return splittedFileTypes .filter((splittedFileType: string) => !splittedFileType?.includes('/')) .map((splittedFileType: string) => parseFileType(splittedFileType)) .join(', '); } // If `fileType` contains only `format` or `mime` type, parse the type return parseFileType(fileType); }); export default getAllowedFileTypes;