mirror of
https://github.com/denoland/deno.git
synced 2024-12-13 11:02:19 -05:00
93 lines
2.8 KiB
JavaScript
93 lines
2.8 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.getMimeType = void 0;
|
||
|
const getMimeType = (filename) => {
|
||
|
const regexp = /\.([a-zA-Z0-9]+?)$/;
|
||
|
const match = filename.match(regexp);
|
||
|
if (!match)
|
||
|
return;
|
||
|
let mimeType = mimes[match[1]];
|
||
|
if ((mimeType && mimeType.startsWith('text')) || mimeType === 'application/json') {
|
||
|
mimeType += '; charset=utf-8';
|
||
|
}
|
||
|
return mimeType;
|
||
|
};
|
||
|
exports.getMimeType = getMimeType;
|
||
|
const mimes = {
|
||
|
aac: 'audio/aac',
|
||
|
abw: 'application/x-abiword',
|
||
|
arc: 'application/x-freearc',
|
||
|
avi: 'video/x-msvideo',
|
||
|
azw: 'application/vnd.amazon.ebook',
|
||
|
bin: 'application/octet-stream',
|
||
|
bmp: 'image/bmp',
|
||
|
bz: 'application/x-bzip',
|
||
|
bz2: 'application/x-bzip2',
|
||
|
csh: 'application/x-csh',
|
||
|
css: 'text/css',
|
||
|
csv: 'text/csv',
|
||
|
doc: 'application/msword',
|
||
|
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||
|
eot: 'application/vnd.ms-fontobject',
|
||
|
epub: 'application/epub+zip',
|
||
|
gz: 'application/gzip',
|
||
|
gif: 'image/gif',
|
||
|
htm: 'text/html',
|
||
|
html: 'text/html',
|
||
|
ico: 'image/x-icon',
|
||
|
ics: 'text/calendar',
|
||
|
jar: 'application/java-archive',
|
||
|
jpeg: 'image/jpeg',
|
||
|
jpg: 'image/jpeg',
|
||
|
js: 'text/javascript',
|
||
|
json: 'application/json',
|
||
|
jsonld: 'application/ld+json',
|
||
|
map: 'application/json',
|
||
|
mid: 'audio/x-midi',
|
||
|
midi: 'audio/x-midi',
|
||
|
mjs: 'text/javascript',
|
||
|
mp3: 'audio/mpeg',
|
||
|
mpeg: 'video/mpeg',
|
||
|
mpkg: 'application/vnd.apple.installer+xml',
|
||
|
odp: 'application/vnd.oasis.opendocument.presentation',
|
||
|
ods: 'application/vnd.oasis.opendocument.spreadsheet',
|
||
|
odt: 'application/vnd.oasis.opendocument.text',
|
||
|
oga: 'audio/ogg',
|
||
|
ogv: 'video/ogg',
|
||
|
ogx: 'application/ogg',
|
||
|
opus: 'audio/opus',
|
||
|
otf: 'font/otf',
|
||
|
png: 'image/png',
|
||
|
pdf: 'application/pdf',
|
||
|
php: 'application/php',
|
||
|
ppt: 'application/vnd.ms-powerpoint',
|
||
|
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
||
|
rar: 'application/vnd.rar',
|
||
|
rtf: 'application/rtf',
|
||
|
sh: 'application/x-sh',
|
||
|
svg: 'image/svg+xml',
|
||
|
swf: 'application/x-shockwave-flash',
|
||
|
tar: 'application/x-tar',
|
||
|
tif: 'image/tiff',
|
||
|
tiff: 'image/tiff',
|
||
|
ts: 'video/mp2t',
|
||
|
ttf: 'font/ttf',
|
||
|
txt: 'text/plain',
|
||
|
vsd: 'application/vnd.visio',
|
||
|
wav: 'audio/wav',
|
||
|
weba: 'audio/webm',
|
||
|
webm: 'video/webm',
|
||
|
webp: 'image/webp',
|
||
|
woff: 'font/woff',
|
||
|
woff2: 'font/woff2',
|
||
|
xhtml: 'application/xhtml+xml',
|
||
|
xls: 'application/vnd.ms-excel',
|
||
|
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||
|
xml: 'application/xml',
|
||
|
xul: 'application/vnd.mozilla.xul+xml',
|
||
|
zip: 'application/zip',
|
||
|
'3gp': 'video/3gpp',
|
||
|
'3g2': 'video/3gpp2',
|
||
|
'7z': 'application/x-7z-compressed',
|
||
|
};
|