This package is a clone of jshttp/mime-types with the added compatibility for any JS environment including web. Also supports TypeScript out-of-the-box (no need to install
@types/mime-types
anymore)
The ultimate javascript content-type utility.
Similar to the mime@1.x
module, except:
- No fallbacks. Instead of naively returning the first available type,
mime-types
simply returnsfalse
, so dovar type = mime.lookup('unrecognized') || 'application/octet-stream'
. - No
new Mime()
business, so you could dovar lookup = require('mime-types').lookup
. - No
.define()
functionality - Bug fixes for
.lookup(path)
Otherwise, the API is compatible with mime
1.x.
This is a Node.js module available through the
npm registry. Installation is done using the
npm install
command:
$ npm install @onefloms/mime-types
All mime types are based on mime-db, so open a PR there if you'd like to add mime types.
var { lookup, contentType} = require('@onefloms/mime-types');
// or
import { lookup, contentType } from '@onefloms/mime-types';
All functions return false
if input is invalid or not found.
Lookup the content-type associated with a file.
lookup('json') // 'application/json'
lookup('.md') // 'text/markdown'
lookup('file.html') // 'text/html'
lookup('folder/file.js') // 'application/javascript'
lookup('folder/.htaccess') // false
lookup('cats') // false
Create a full content-type header given a content-type or extension.
When given an extension, lookup
is used to get the matching
content-type, otherwise the given content-type is used. Then if the
content-type does not already have a charset
parameter, charset
is used to get the default charset and add to the returned content-type.
contentType('markdown') // 'text/x-markdown; charset=utf-8'
contentType('file.json') // 'application/json; charset=utf-8'
contentType('text/html') // 'text/html; charset=utf-8'
contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1'
// from a full path
contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'
Get the default extension for a content-type.
extension('application/octet-stream') // 'bin'
Lookup the implied default charset of a content-type.
charset('text/markdown') // 'UTF-8'
A map of content-types by extension.
A map of extensions by content-type.