Add `GoogleChrome` module

Helps us determine which media we can natively display / play back in Electron.
This commit is contained in:
Daniel Gasienica 2018-04-09 19:27:40 -04:00
parent 9533c09707
commit 47cc701e72
1 changed files with 37 additions and 0 deletions

37
ts/GoogleChrome.ts Normal file
View File

@ -0,0 +1,37 @@
import * as MIME from './types/MIME';
interface MIMETypeSupportMap {
[key: string]: boolean;
}
// See: https://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support
const SUPPORTED_IMAGE_MIME_TYPES: MIMETypeSupportMap = {
'image/bmp': true,
'image/gif': true,
'image/jpeg': true,
'image/svg+xml': true,
'image/webp': true,
'image/x-xbitmap': true,
// ICO
'image/vnd.microsoft.icon': true,
'image/ico': true,
'image/icon': true,
'image/x-icon': true,
// PNG
'image/apng': true,
'image/png': true,
};
export const isImageTypeSupported = (mimeType: MIME.MIMEType): boolean =>
SUPPORTED_IMAGE_MIME_TYPES[mimeType] === true;
const SUPPORTED_VIDEO_MIME_TYPES: MIMETypeSupportMap = {
'video/mp4': true,
'video/ogg': true,
'video/webm': true,
};
// See: https://www.chromium.org/audio-video
export const isVideoTypeSupported = (mimeType: MIME.MIMEType): boolean =>
SUPPORTED_VIDEO_MIME_TYPES[mimeType] === true;