Picsur/shared/src/util/parse-mime.ts

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);
}