35 lines
998 B
TypeScript
35 lines
998 B
TypeScript
import {
|
|
Ext2FileType,
|
|
FileType,
|
|
Mime2FileType,
|
|
SupportedAnimFileTypes,
|
|
SupportedFileTypeCategory,
|
|
SupportedImageFileTypes,
|
|
} from '../dto/mimes.dto';
|
|
import { Fail, Failable, FT, HasFailed } from '../types';
|
|
|
|
export function ParseFileType(filetype: string): Failable<FileType> {
|
|
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<FileType> {
|
|
const result = Ext2FileType(ext);
|
|
if (HasFailed(result)) return result;
|
|
return ParseFileType(result);
|
|
}
|
|
|
|
export function ParseMime2FileType(mime: string): Failable<FileType> {
|
|
const result = Mime2FileType(mime);
|
|
if (HasFailed(result)) return result;
|
|
return ParseFileType(result);
|
|
}
|