Support more image/video/audio types for markdown copy into files

Fixes #239016
This commit is contained in:
Matt Bierner
2025-01-28 15:35:46 -08:00
parent 737074e1b7
commit f9213d7b48
4 changed files with 72 additions and 56 deletions

View File

@@ -8,16 +8,52 @@ export const Mime = {
textPlain: 'text/plain',
} as const;
export const mediaMimes = new Set([
'image/avif',
'image/bmp',
'image/gif',
'image/jpeg',
'image/png',
'image/webp',
'video/mp4',
'video/ogg',
'audio/mpeg',
'audio/aac',
'audio/x-wav',
export const rootMediaMimesTypes = Object.freeze({
image: 'image',
audio: 'audio',
video: 'video',
});
export enum MediaKind {
Image = 1,
Video,
Audio
}
export function getMediaKindForMime(mime: string): MediaKind | undefined {
const root = mime.toLowerCase().split('/').at(0);
switch (root) {
case 'image': return MediaKind.Image;
case 'video': return MediaKind.Video;
case 'audio': return MediaKind.Audio;
default: return undefined;
}
}
export const mediaFileExtensions = new Map<string, MediaKind>([
// Images
['avif', MediaKind.Image],
['bmp', MediaKind.Image],
['gif', MediaKind.Image],
['ico', MediaKind.Image],
['jpe', MediaKind.Image],
['jpeg', MediaKind.Image],
['jpg', MediaKind.Image],
['png', MediaKind.Image],
['psd', MediaKind.Image],
['svg', MediaKind.Image],
['tga', MediaKind.Image],
['tif', MediaKind.Image],
['tiff', MediaKind.Image],
['webp', MediaKind.Image],
// Videos
['ogg', MediaKind.Video],
['mp4', MediaKind.Video],
['mov', MediaKind.Video],
// Audio Files
['mp3', MediaKind.Audio],
['aac', MediaKind.Audio],
['wav', MediaKind.Audio],
]);