From 87ed7c8affd3ade9d3cd2d9ed1a61dd5f224e473 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Wed, 31 Jan 2024 08:38:30 -0500 Subject: Module refactoring (#588) * Convert PronunciationGenerator into static functions * Convert DictionaryDataUtil into static functions * Convert AnkiNoteDataCreator into static functions * Convert MediaUtil into static functions * Convert RegexUtil into static functions * Convert StringUtil into static functions * Convert ArrayBufferUtil into static functions * Convert AnkiUtil into static functions * Convert PermissionsUtil into static functions * Convert ProfileConditionsUtil into static functions --- ext/js/media/media-util.js | 211 ++++++++++++++++++++++----------------------- 1 file changed, 103 insertions(+), 108 deletions(-) (limited to 'ext/js/media/media-util.js') diff --git a/ext/js/media/media-util.js b/ext/js/media/media-util.js index 1f9f2d0b..3e492e42 100644 --- a/ext/js/media/media-util.js +++ b/ext/js/media/media-util.js @@ -17,119 +17,114 @@ */ /** - * MediaUtil is a class containing helper methods related to media processing. + * Gets the file extension of a file path. URL search queries and hash + * fragments are not handled. + * @param {string} path The path to the file. + * @returns {string} The file extension, including the '.', or an empty string + * if there is no file extension. */ -export class MediaUtil { - /** - * Gets the file extension of a file path. URL search queries and hash - * fragments are not handled. - * @param {string} path The path to the file. - * @returns {string} The file extension, including the '.', or an empty string - * if there is no file extension. - */ - static getFileNameExtension(path) { - const match = /\.[^./\\]*$/.exec(path); - return match !== null ? match[0] : ''; - } +export function getFileNameExtension(path) { + const match = /\.[^./\\]*$/.exec(path); + return match !== null ? match[0] : ''; +} - /** - * Gets an image file's media type using a file path. - * @param {string} path The path to the file. - * @returns {?string} The media type string if it can be determined from the file path, - * otherwise `null`. - */ - static getImageMediaTypeFromFileName(path) { - switch (this.getFileNameExtension(path).toLowerCase()) { - case '.apng': - return 'image/apng'; - case '.bmp': - return 'image/bmp'; - case '.gif': - return 'image/gif'; - case '.ico': - case '.cur': - return 'image/x-icon'; - case '.jpg': - case '.jpeg': - case '.jfif': - case '.pjpeg': - case '.pjp': - return 'image/jpeg'; - case '.png': - return 'image/png'; - case '.svg': - return 'image/svg+xml'; - case '.tif': - case '.tiff': - return 'image/tiff'; - case '.webp': - return 'image/webp'; - default: - return null; - } +/** + * Gets an image file's media type using a file path. + * @param {string} path The path to the file. + * @returns {?string} The media type string if it can be determined from the file path, + * otherwise `null`. + */ +export function getImageMediaTypeFromFileName(path) { + switch (getFileNameExtension(path).toLowerCase()) { + case '.apng': + return 'image/apng'; + case '.bmp': + return 'image/bmp'; + case '.gif': + return 'image/gif'; + case '.ico': + case '.cur': + return 'image/x-icon'; + case '.jpg': + case '.jpeg': + case '.jfif': + case '.pjpeg': + case '.pjp': + return 'image/jpeg'; + case '.png': + return 'image/png'; + case '.svg': + return 'image/svg+xml'; + case '.tif': + case '.tiff': + return 'image/tiff'; + case '.webp': + return 'image/webp'; + default: + return null; } +} - /** - * Gets the file extension for a corresponding media type. - * @param {string} mediaType The media type to use. - * @returns {?string} A file extension including the dot for the media type, - * otherwise `null`. - */ - static getFileExtensionFromImageMediaType(mediaType) { - switch (mediaType) { - case 'image/apng': - return '.apng'; - case 'image/bmp': - return '.bmp'; - case 'image/gif': - return '.gif'; - case 'image/x-icon': - return '.ico'; - case 'image/jpeg': - return '.jpeg'; - case 'image/png': - return '.png'; - case 'image/svg+xml': - return '.svg'; - case 'image/tiff': - return '.tiff'; - case 'image/webp': - return '.webp'; - default: - return null; - } +/** + * Gets the file extension for a corresponding media type. + * @param {string} mediaType The media type to use. + * @returns {?string} A file extension including the dot for the media type, + * otherwise `null`. + */ +export function getFileExtensionFromImageMediaType(mediaType) { + switch (mediaType) { + case 'image/apng': + return '.apng'; + case 'image/bmp': + return '.bmp'; + case 'image/gif': + return '.gif'; + case 'image/x-icon': + return '.ico'; + case 'image/jpeg': + return '.jpeg'; + case 'image/png': + return '.png'; + case 'image/svg+xml': + return '.svg'; + case 'image/tiff': + return '.tiff'; + case 'image/webp': + return '.webp'; + default: + return null; } +} - /** - * Gets the file extension for a corresponding media type. - * @param {string} mediaType The media type to use. - * @returns {?string} A file extension including the dot for the media type, - * otherwise `null`. - */ - static getFileExtensionFromAudioMediaType(mediaType) { - switch (mediaType) { - case 'audio/aac': - return '.aac'; - case 'audio/mpeg': - case 'audio/mp3': - return '.mp3'; - case 'audio/mp4': - return '.mp4'; - case 'audio/ogg': - case 'audio/vorbis': - return '.ogg'; - case 'audio/vnd.wav': - case 'audio/wave': - case 'audio/wav': - case 'audio/x-wav': - case 'audio/x-pn-wav': - return '.wav'; - case 'audio/flac': - return '.flac'; - case 'audio/webm': - return '.webm'; - default: - return null; - } +/** + * Gets the file extension for a corresponding media type. + * @param {string} mediaType The media type to use. + * @returns {?string} A file extension including the dot for the media type, + * otherwise `null`. + */ +export function getFileExtensionFromAudioMediaType(mediaType) { + switch (mediaType) { + case 'audio/aac': + return '.aac'; + case 'audio/mpeg': + case 'audio/mp3': + return '.mp3'; + case 'audio/mp4': + return '.mp4'; + case 'audio/ogg': + case 'audio/vorbis': + return '.ogg'; + case 'audio/vnd.wav': + case 'audio/wave': + case 'audio/wav': + case 'audio/x-wav': + case 'audio/x-pn-wav': + return '.wav'; + case 'audio/flac': + return '.flac'; + case 'audio/webm': + return '.webm'; + default: + return null; } } -- cgit v1.2.3