You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

199 lines
5.5 KiB

// A simple mime database.
var types;
module.exports = function setup(defaultMime) {
return function getMime(path) {
path = path.toLowerCase().trim();
var index = path.lastIndexOf("/");
if (index >= 0) {
path = path.substr(index + 1);
}
index = path.lastIndexOf(".");
if (index >= 0) {
path = path.substr(index + 1);
}
return types[path] || defaultMime;
};
};
// Borrowed and passed around from who knows where, last grabbed from connect.
types = {
"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-csrc",
cab: "application/vnd.ms-cab-compressed",
can: "application/candor",
cc: "text/x-c++src",
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",
gyp: "text/x-script.python",
gypi: "text/x-script.python",
gz: "application/x-gzip",
h: "text/x-chdr",
hh: "text/x-c++hdr",
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",
less: "text/css",
log: "text/plain",
lua: "text/x-script.lua",
luac: "application/x-bytecode.lua",
makefile: "text/x-makefile",
m3u: "audio/x-mpegurl",
m4v: "video/mp4",
man: "text/troff",
manifest: "text/cache-manifest",
markdown: "text/x-markdown",
mathml: "application/mathml+xml",
mbox: "application/mbox",
mdoc: "text/troff",
md: "text/x-markdown",
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",
tci: "application/x-topcloud",
tcl: "application/x-tcl",
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",
ttf: "application/x-font-ttf",
txt: "text/plain",
vcf: "text/x-vcard",
vcs: "text/x-vcalendar",
vrml: "model/vrml",
war : "application/java-archive",
wav : "audio/x-wav",
webapp: "application/x-web-app-manifest+json",
webm: "video/webm",
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"
};