Add frontend qoi rendering

This commit is contained in:
rubikscraft
2022-04-16 16:35:28 +02:00
parent b778b86eae
commit cadb909c40
32 changed files with 842 additions and 124 deletions

View File

@@ -0,0 +1,33 @@
// Config
export enum ImageMime {
JPEG = 'image/jpeg',
PNG = 'image/png',
WEBP = 'image/webp',
TIFF = 'image/tiff',
BMP = 'image/bmp',
ICO = 'image/x-icon',
}
export enum AnimMime {
APNG = 'image/apng',
GIF = 'image/gif',
}
export const SupportedMime = { ...ImageMime, ...AnimMime };
// Derivatives
export const SupportedImageMimes: string[] = Object.values(ImageMime);
export const SupportedAnimMimes: string[] = Object.values(AnimMime);
export const SupportedMimes: string[] = Object.values(SupportedMime);
export enum SupportedMimeCategory {
Image = 'image',
Animation = 'anim',
}
export interface FullMime {
mime: string;
type: SupportedMimeCategory;
}

View File

@@ -1,3 +1,5 @@
export const AlphaNumeric = /^[a-zA-Z0-9]+$/;
export const SHA256 = /^[a-f0-9A-F]{64}$/;
export const SemVer = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
export const URLRegex =
/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/;

View File

@@ -0,0 +1,12 @@
import { FullMime, SupportedAnimMimes, SupportedImageMimes, SupportedMimeCategory } from '../dto/mimes.dto';
import { Fail, Failable } from '../types';
export function ParseMime(mime: string): Failable<FullMime> {
if (SupportedImageMimes.includes(mime)) {
return { mime, type: SupportedMimeCategory.Image };
}
if (SupportedAnimMimes.includes(mime)) {
return { mime, type: SupportedMimeCategory.Animation };
}
return Fail('Unsupported mime type');
}