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
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" |
|
};
|
|
|