es-mime-types
mime-types
rewrite in TypeScript compiled to ESM
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 returns false
, so do
const type = mime.lookup('unrecognized') || 'application/octet-stream'
. - No
new Mime()
business, so you could do var lookup = require('mime-types').lookup
. - No
.define()
functionality - Bug fixes for
.lookup(path)
Otherwise, the API is compatible with mime
1.x.
Install
pnpm i es-mime-types
Adding Types
All mime types are based on mime-db,
so open a PR there if you'd like to add mime types.
API
import { lookup, contentType, extension, charset, types } from 'es-mime-types'
All functions return false
if input is invalid or not found.
lookup(path)
Lookup the content-type associated with a file.
lookup('json')
lookup('.md')
lookup('file.html')
lookup('folder/file.js')
lookup('folder/.htaccess')
lookup('cats')
contentType(type)
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')
contentType('file.json')
contentType('text/html')
contentType('text/html; charset=iso-8859-1')
contentType(path.extname('/path/to/file.json'))
extension(type)
Get the default extension for a content-type.
extension('application/octet-stream')
charset(type)
Lookup the implied default charset of a content-type.
charset('text/markdown')
types[extension]
A map of extensions by content-type.
License
MIT © v1rtl