UNPKG

content-type-to-ext

Version:

Map content-type to file extension (and vice-versa)

184 lines (180 loc) 5.3 kB
export enum Extensions { '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', eot = 'application/vnd.ms-fontobject', 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', 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', 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', wma = 'audio/x-ms-wma', wmv = 'video/x-ms-wmv', wmx = 'video/x-ms-wmx', woff = 'application/x-font-woff', 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' } export type Extension = keyof typeof Extensions export function getExtension(mimeType: string): Extension | undefined { for (let extension in Extensions) { if (Extensions[extension] === mimeType) { return extension as Extension } } } export function getContentType(ext: Extension): Extensions | undefined { return Extensions[ext] }