import { Ext2FileType, FileType, Mime2FileType, SupportedAnimFileTypes, SupportedFileTypeCategory, SupportedImageFileTypes, } from '../dto/mimes.dto'; import { Fail, Failable, FT, HasFailed } from '../types'; export function ParseFileType(filetype: string): Failable { if (SupportedImageFileTypes.includes(filetype)) return { identifier: filetype, category: SupportedFileTypeCategory.Image }; if (SupportedAnimFileTypes.includes(filetype)) return { identifier: filetype, category: SupportedFileTypeCategory.Animation, }; return Fail(FT.UsrValidation, 'Unsupported file type'); } export function ParseExt2FileType(ext: string): Failable { const result = Ext2FileType(ext); if (HasFailed(result)) return result; return ParseFileType(result); } export function ParseMime2FileType(mime: string): Failable { const result = Mime2FileType(mime); if (HasFailed(result)) return result; return ParseFileType(result); }