rjweb-server
Version:
Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS
155 lines (154 loc) • 5.37 kB
JavaScript
function parseContentType(name, customTypes) {
for (const [key, value] of Object.entries(customTypes)) {
if (name.endsWith(key))
return value;
}
if (name.endsWith(".pdf"))
return "application/pdf";
if (name.endsWith(".js"))
return "text/javascript";
if (name.endsWith(".html"))
return "text/html";
if (name.endsWith(".css"))
return "text/css";
if (name.endsWith(".csv"))
return "text/csv";
if (name.endsWith(".svg"))
return "image/svg+xml";
if (name.endsWith(".mpeg"))
return "video/mpeg";
if (name.endsWith(".mp4"))
return "video/mp4";
if (name.endsWith(".webm"))
return "video/webm";
if (name.endsWith(".bmp"))
return "image/bmp";
if (name.endsWith(".gif"))
return "image/gif";
if (name.endsWith(".jpeg") || name.endsWith(".jpg"))
return "image/jpeg";
if (name.endsWith(".png"))
return "image/png";
if (name.endsWith(".tiff") || name.endsWith(".tif"))
return "image/tiff";
if (name.endsWith(".xml"))
return "application/xml";
if (name.endsWith(".json"))
return "application/json";
if (name.endsWith(".txt"))
return "text/plain";
if (name.endsWith(".doc") || name.endsWith(".docx"))
return "application/msword";
if (name.endsWith(".ppt") || name.endsWith(".pptx"))
return "application/vnd.ms-powerpoint";
if (name.endsWith(".xls") || name.endsWith(".xlsx"))
return "application/vnd.ms-excel";
if (name.endsWith(".7z"))
return "application/x-7z-compressed";
if (name.endsWith(".zip"))
return "application/zip";
if (name.endsWith(".tar"))
return "application/x-tar";
if (name.endsWith(".gz") || name.endsWith(".gzip"))
return "application/gzip";
if (name.endsWith(".mp3"))
return "audio/mpeg";
if (name.endsWith(".aac"))
return "audio/aac";
if (name.endsWith(".midi") || name.endsWith(".mid"))
return "audio/midi";
if (name.endsWith(".wav"))
return "audio/wav";
if (name.endsWith(".ogg"))
return "audio/ogg";
if (name.endsWith(".flac"))
return "audio/flac";
if (name.endsWith(".odt"))
return "application/vnd.oasis.opendocument.text";
if (name.endsWith(".odp"))
return "application/vnd.oasis.opendocument.presentation";
if (name.endsWith(".ods"))
return "application/vnd.oasis.opendocument.spreadsheet";
if (name.endsWith(".avi"))
return "video/x-msvideo";
if (name.endsWith(".wmv"))
return "video/x-ms-wmv";
if (name.endsWith(".mov"))
return "video/quicktime";
if (name.endsWith(".mkv"))
return "video/x-matroska";
if (name.endsWith(".webp"))
return "image/webp";
if (name.endsWith(".ico"))
return "image/x-icon";
if (name.endsWith(".jfif") || name.endsWith(".jpe") || name.endsWith(".jif") || name.endsWith(".jfi"))
return "image/jpeg";
if (name.endsWith(".svgz"))
return "image/svg+xml";
if (name.endsWith(".m4a"))
return "audio/m4a";
if (name.endsWith(".opus"))
return "audio/opus";
if (name.endsWith(".mpg"))
return "video/mpeg";
if (name.endsWith(".ogv"))
return "video/ogg";
if (name.endsWith(".dcm"))
return "application/dicom";
if (name.endsWith(".xlsb"))
return "application/vnd.ms-excel.sheet.binary.macroEnabled.12";
if (name.endsWith(".xlsm"))
return "application/vnd.ms-excel.sheet.macroEnabled.12";
if (name.endsWith(".xltx"))
return "application/vnd.openxmlformats-officedocument.spreadsheetml.template";
if (name.endsWith(".dotx"))
return "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
if (name.endsWith(".ppam"))
return "application/vnd.ms-powerpoint.addin.macroEnabled.12";
if (name.endsWith(".ppsm"))
return "application/vnd.ms-powerpoint.slideshow.macroEnabled.12";
if (name.endsWith(".potx"))
return "application/vnd.openxmlformats-officedocument.presentationml.template";
if (name.endsWith(".sldx"))
return "application/vnd.openxmlformats-officedocument.presentationml.slide";
if (name.endsWith(".thmx"))
return "application/vnd.ms-officetheme";
if (name.endsWith(".docm"))
return "application/vnd.ms-word.document.macroEnabled.12";
if (name.endsWith(".dotm"))
return "application/vnd.ms-word.template.macroEnabled.12";
if (name.endsWith(".ppsx"))
return "application/vnd.openxmlformats-officedocument.presentationml.slideshow";
if (name.endsWith(".sldm"))
return "application/vnd.ms-powerpoint.slide.macroEnabled.12";
if (name.endsWith(".xlam"))
return "application/vnd.ms-excel.addin.macroEnabled.12";
if (name.endsWith(".xls"))
return "application/vnd.ms-excel";
if (name.endsWith(".dot"))
return "application/msword";
if (name.endsWith(".pot"))
return "application/vnd.ms-powerpoint";
if (name.endsWith(".pps"))
return "application/vnd.ms-powerpoint";
if (name.endsWith(".sld"))
return "application/vnd.ms-powerpoint";
if (name.endsWith(".xlt"))
return "application/vnd.ms-excel";
if (name.endsWith(".xla"))
return "application/vnd.ms-excel";
if (name.endsWith(".ppt"))
return "application/vnd.ms-powerpoint";
if (name.endsWith(".eml"))
return "message/rfc822";
if (name.endsWith(".vcf"))
return "text/vcard";
if (name.endsWith(".ics"))
return "text/calendar";
if (name.endsWith(".vcf"))
return "text/x-vcard";
return "";
}
export {
parseContentType as default
};