-
-
Save brettz9/5790179 to your computer and use it in GitHub Desktop.
File extensions and content type
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /*globals module */ | |
| // Adapted from https://gist.github.com/rrobe53/976610 | |
| module.exports = (function () { | |
| 'use strict'; | |
| var extensionTypeMap = { | |
| "3gp": "video/3gpp", | |
| "a": "application/octet-stream", | |
| "ai": "application/postscript", | |
| "aif": "audio/x-aiff", | |
| "aiff": "audio/x-aiff", | |
| "asc": "application/pgp-signature", | |
| "asf": "video/x-ms-asf", | |
| "asm": "text/x-asm", | |
| "asx": "video/x-ms-asf", | |
| "atom": "application/atom+xml", | |
| "au": "audio/basic", | |
| "avi": "video/x-msvideo", | |
| "bat": "application/x-msdownload", | |
| "bin": "application/octet-stream", | |
| "bmp": "image/bmp", | |
| "bz2": "application/x-bzip2", | |
| "c": "text/x-c", | |
| "cab": "application/vnd.ms-cab-compressed", | |
| "cc": "text/x-c", | |
| "chm": "application/vnd.ms-htmlhelp", | |
| "class": "application/octet-stream", | |
| "com": "application/x-msdownload", | |
| "conf": "text/plain", | |
| "cpp": "text/x-c", | |
| "crt": "application/x-x509-ca-cert", | |
| "css": "text/css", | |
| "csv": "text/csv", | |
| "cxx": "text/x-c", | |
| "deb": "application/x-debian-package", | |
| "der": "application/x-x509-ca-cert", | |
| "diff": "text/x-diff", | |
| "djv": "image/vnd.djvu", | |
| "djvu": "image/vnd.djvu", | |
| "dll": "application/x-msdownload", | |
| "dmg": "application/octet-stream", | |
| "doc": "application/msword", | |
| "dot": "application/msword", | |
| "dtd": "application/xml-dtd", | |
| "dvi": "application/x-dvi", | |
| "ear": "application/java-archive", | |
| "eml": "message/rfc822", | |
| "eps": "application/postscript", | |
| "exe": "application/x-msdownload", | |
| "f": "text/x-fortran", | |
| "f77": "text/x-fortran", | |
| "f90": "text/x-fortran", | |
| "flv": "video/x-flv", | |
| "for": "text/x-fortran", | |
| "gem": "application/octet-stream", | |
| "gemspec": "text/x-script.ruby", | |
| "gif": "image/gif", | |
| "gz": "application/x-gzip", | |
| "h": "text/x-c", | |
| "hh": "text/x-c", | |
| "htm": "text/html", | |
| "html": "text/html", | |
| "ico": "image/vnd.microsoft.icon", | |
| "ics": "text/calendar", | |
| "ifb": "text/calendar", | |
| "iso": "application/octet-stream", | |
| "jar": "application/java-archive", | |
| "java": "text/x-java-source", | |
| "jnlp": "application/x-java-jnlp-file", | |
| "jpeg": "image/jpeg", | |
| "jpg": "image/jpeg", | |
| "js": "application/javascript", | |
| "json": "application/json", | |
| "log": "text/plain", | |
| "m3u": "audio/x-mpegurl", | |
| "m4v": "video/mp4", | |
| "man": "text/troff", | |
| "mathml": "application/mathml+xml", | |
| "mbox": "application/mbox", | |
| "mdoc": "text/troff", | |
| "me": "text/troff", | |
| "mid": "audio/midi", | |
| "midi": "audio/midi", | |
| "mime": "message/rfc822", | |
| "mml": "application/mathml+xml", | |
| "mng": "video/x-mng", | |
| "mov": "video/quicktime", | |
| "mp3": "audio/mpeg", | |
| "mp4": "video/mp4", | |
| "mp4v": "video/mp4", | |
| "mpeg": "video/mpeg", | |
| "mpg": "video/mpeg", | |
| "ms": "text/troff", | |
| "msi": "application/x-msdownload", | |
| "odp": "application/vnd.oasis.opendocument.presentation", | |
| "ods": "application/vnd.oasis.opendocument.spreadsheet", | |
| "odt": "application/vnd.oasis.opendocument.text", | |
| "ogg": "application/ogg", | |
| "p": "text/x-pascal", | |
| "pas": "text/x-pascal", | |
| "pbm": "image/x-portable-bitmap", | |
| "pdf": "application/pdf", | |
| "pem": "application/x-x509-ca-cert", | |
| "pgm": "image/x-portable-graymap", | |
| "pgp": "application/pgp-encrypted", | |
| "pkg": "application/octet-stream", | |
| "pl": "text/x-script.perl", | |
| "pm": "text/x-script.perl-module", | |
| "png": "image/png", | |
| "pnm": "image/x-portable-anymap", | |
| "ppm": "image/x-portable-pixmap", | |
| "pps": "application/vnd.ms-powerpoint", | |
| "ppt": "application/vnd.ms-powerpoint", | |
| "ps": "application/postscript", | |
| "psd": "image/vnd.adobe.photoshop", | |
| "py": "text/x-script.python", | |
| "qt": "video/quicktime", | |
| "ra": "audio/x-pn-realaudio", | |
| "rake": "text/x-script.ruby", | |
| "ram": "audio/x-pn-realaudio", | |
| "rar": "application/x-rar-compressed", | |
| "rb": "text/x-script.ruby", | |
| "rdf": "application/rdf+xml", | |
| "roff": "text/troff", | |
| "rpm": "application/x-redhat-package-manager", | |
| "rss": "application/rss+xml", | |
| "rtf": "application/rtf", | |
| "ru": "text/x-script.ruby", | |
| "s": "text/x-asm", | |
| "sgm": "text/sgml", | |
| "sgml": "text/sgml", | |
| "sh": "application/x-sh", | |
| "sig": "application/pgp-signature", | |
| "snd": "audio/basic", | |
| "so": "application/octet-stream", | |
| "svg": "image/svg+xml", | |
| "svgz": "image/svg+xml", | |
| "swf": "application/x-shockwave-flash", | |
| "t": "text/troff", | |
| "tar": "application/x-tar", | |
| "tbz": "application/x-bzip-compressed-tar", | |
| "tcl": "application/x-tcl", | |
| "tei": "application/tei+xml", | |
| "tex": "application/x-tex", | |
| "texi": "application/x-texinfo", | |
| "texinfo": "application/x-texinfo", | |
| "text": "text/plain", | |
| "tif": "image/tiff", | |
| "tiff": "image/tiff", | |
| "torrent": "application/x-bittorrent", | |
| "tr": "text/troff", | |
| "txt": "text/plain", | |
| "vcf": "text/x-vcard", | |
| "vcs": "text/x-vcalendar", | |
| "vrml": "model/vrml", | |
| "war": "application/java-archive", | |
| "wav": "audio/x-wav", | |
| "wma": "audio/x-ms-wma", | |
| "wmv": "video/x-ms-wmv", | |
| "wmx": "video/x-ms-wmx", | |
| "wrl": "model/vrml", | |
| "wsdl": "application/wsdl+xml", | |
| "xbm": "image/x-xbitmap", | |
| "xhtml": "application/xhtml+xml", | |
| "xls": "application/vnd.ms-excel", | |
| "xml": "application/xml", | |
| "xpm": "image/x-xpixmap", | |
| "xsl": "application/xml", | |
| "xslt": "application/xslt+xml", | |
| "yaml": "text/yaml", | |
| "yml": "text/yaml", | |
| "zip": "application/zip" | |
| }; | |
| return { | |
| extensionTypeMap: extensionTypeMap, | |
| getExtensionForPath: function (path) { // or for Node, require('path').extname(path) but this includes "." | |
| var i = path.lastIndexOf('.'); | |
| return (i < 0) ? '' : path.substr(i); | |
| }, | |
| getContentTypeForExtension: function (ext) { | |
| ext = ext.replace(/^\./, ''); | |
| return extensionTypeMap[ext.toLowerCase()] || 'application/octet-stream'; | |
| }, | |
| getContentTypeForPath: function (path) { | |
| return this.getContentTypeForExtension( | |
| this.getExtensionForPath(path) | |
| ); | |
| } | |
| }; | |
| }()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment