UNPKG

human-filetypes

Version:
63 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMimeTypes = exports.fromMime = void 0; const data_1 = require("./data"); const fromMime = (input) => { if (!input) return data_1.FileKind.Unknown; const mime = `${input}`.toLowerCase().trim(); // human readable mime types image/ video/ audio/ font/ const [type] = mime.split('/'); switch (type) { case 'image': return data_1.FileKind.Image; case 'video': return data_1.FileKind.Video; case 'audio': return data_1.FileKind.Audio; case 'font': return data_1.FileKind.Font; } // non-human readable types: application/ text/ const match = data_1.mimeData[mime]; if (match) { return match.kind; } return data_1.FileKind.Unknown; }; exports.fromMime = fromMime; const getMimeTypes = (fileType) => { if (!fileType) return []; const fileKind = `${fileType}`.toLowerCase().trim(); // human readable file Kinds image/ video/ audio/ font/ switch (fileKind) { case 'image': return getAllowedMimeTypes(data_1.FileKind.Image); case 'video': return getAllowedMimeTypes(data_1.FileKind.Video); case 'audio': return getAllowedMimeTypes(data_1.FileKind.Audio); case 'font': return getAllowedMimeTypes(data_1.FileKind.Font); case 'archive': return getAllowedMimeTypes(data_1.FileKind.Archive); case 'presentation': return getAllowedMimeTypes(data_1.FileKind.Presentation); case 'text': return getAllowedMimeTypes(data_1.FileKind.Text); case 'spreadsheet': return getAllowedMimeTypes(data_1.FileKind.Spreadsheet); case 'document': return getAllowedMimeTypes(data_1.FileKind.Document); case 'application': return getAllowedMimeTypes(data_1.FileKind.Application); } return []; }; exports.getMimeTypes = getMimeTypes; const getAllowedMimeTypes = (fileKind) => { var _a; return (_a = Object.keys(data_1.mimeData)) === null || _a === void 0 ? void 0 : _a.filter((key) => data_1.mimeData[key].kind === fileKind); }; //# sourceMappingURL=mime.js.map