UNPKG

@squarecloud/blob

Version:
123 lines (120 loc) 4.39 kB
var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; // src/utils/mimetype/mimetypes.ts var mimeTypesWithExtension = { "video/mp4": ["mp4"], "video/mpeg": ["mpeg"], "video/webm": ["webm"], "video/x-flv": ["flv"], "video/x-m4v": ["m4v"], "image/jpeg": ["jpg", "jpeg"], "image/png": ["png"], "image/apng": ["apng"], "image/tiff": ["tiff"], "image/gif": ["gif"], "image/webp": ["webp"], "image/bmp": ["bmp"], "image/svg+xml": ["svg"], "image/x-icon": ["ico"], "image/ico": ["ico"], "image/cur": ["cur"], "image/heic": ["heic"], "image/heif": ["heif"], "audio/wav": ["wav"], "audio/ogg": ["ogg"], "audio/opus": ["opus"], "audio/mp4": ["mp4"], "audio/mpeg": ["mp3"], "audio/aac": ["aac"], "text/plain": ["txt"], "text/html": ["html"], "text/css": ["css"], "text/csv": ["csv"], "text/x-sql": ["sql"], "application/xml": ["xml"], "application/sql": ["sql"], "application/x-sql": ["sql"], "application/x-sqlite3": ["sqlite3"], "application/x-pkcs12": ["pfx"], "application/pdf": ["pdf"], "application/json": ["json"], "application/javascript": ["js"] }; var mimeTypes = Object.keys(mimeTypesWithExtension); // src/utils/mimetype/enum.ts var MimeTypes = /* @__PURE__ */ ((MimeTypes2) => { MimeTypes2["VIDEO_MP4"] = "video/mp4"; MimeTypes2["VIDEO_MPEG"] = "video/mpeg"; MimeTypes2["VIDEO_WEBM"] = "video/webm"; MimeTypes2["VIDEO_X_FLV"] = "video/x-flv"; MimeTypes2["VIDEO_X_M4V"] = "video/x-m4v"; MimeTypes2["IMAGE_JPEG"] = "image/jpeg"; MimeTypes2["IMAGE_PNG"] = "image/png"; MimeTypes2["IMAGE_APNG"] = "image/apng"; MimeTypes2["IMAGE_TIFF"] = "image/tiff"; MimeTypes2["IMAGE_GIF"] = "image/gif"; MimeTypes2["IMAGE_WEBP"] = "image/webp"; MimeTypes2["IMAGE_BMP"] = "image/bmp"; MimeTypes2["IMAGE_SVG"] = "image/svg+xml"; MimeTypes2["IMAGE_X_ICON"] = "image/x-icon"; MimeTypes2["IMAGE_ICO"] = "image/ico"; MimeTypes2["IMAGE_CUR"] = "image/cur"; MimeTypes2["IMAGE_HEIC"] = "image/heic"; MimeTypes2["IMAGE_HEIF"] = "image/heif"; MimeTypes2["AUDIO_WAV"] = "audio/wav"; MimeTypes2["AUDIO_OGG"] = "audio/ogg"; MimeTypes2["AUDIO_OPUS"] = "audio/opus"; MimeTypes2["AUDIO_MP4"] = "audio/mp4"; MimeTypes2["AUDIO_MPEG"] = "audio/mpeg"; MimeTypes2["AUDIO_AAC"] = "audio/aac"; MimeTypes2["TEXT_PLAIN"] = "text/plain"; MimeTypes2["TEXT_HTML"] = "text/html"; MimeTypes2["TEXT_CSS"] = "text/css"; MimeTypes2["TEXT_CSV"] = "text/csv"; MimeTypes2["TEXT_X_SQL"] = "text/x-sql"; MimeTypes2["APPLICATION_XML"] = "application/xml"; MimeTypes2["APPLICATION_SQL"] = "application/sql"; MimeTypes2["APPLICATION_X_SQL"] = "application/x-sql"; MimeTypes2["APPLICATION_X_SQLITE3"] = "application/x-sqlite3"; MimeTypes2["APPLICATION_X_PKCS12"] = "application/x-pkcs12"; MimeTypes2["APPLICATION_PDF"] = "application/pdf"; MimeTypes2["APPLICATION_JSON"] = "application/json"; MimeTypes2["APPLICATION_JAVASCRIPT"] = "application/javascript"; return MimeTypes2; })(MimeTypes || {}); // src/utils/mimetype/index.ts var MimeTypeUtil = class { /** * Returns the corresponding MIME type for a given file extension. * * @param extension - The file extension to search for. * @return The MIME type associated with the extension, or "text/plain" if not found. * * @example * ```js * MimeTypeUtil.fromExtension("jpeg") // "image/jpeg" | Supported * MimeTypeUtil.fromExtension("json") // "application/json" | Supported * MimeTypeUtil.fromExtension("potato") // "text/plain" | Unsupported, defaults to text/plain * ``` */ static fromExtension(extension) { const entries = Object.entries(mimeTypesWithExtension); const mimeType = entries.find( ([, extensions]) => extensions.includes(extension) )?.[0]; return mimeType || "text/plain"; } }; /** Supported mime types with their extensions */ __publicField(MimeTypeUtil, "mimeTypesWithExtension", mimeTypesWithExtension); /** All supported mime types */ __publicField(MimeTypeUtil, "mimeTypes", mimeTypes); export { MimeTypeUtil, MimeTypes }; //# sourceMappingURL=index.mjs.map