|
# mime-types |
|
|
|
[![NPM Version][npm-version-image]][npm-url] |
|
[![NPM Downloads][npm-downloads-image]][npm-url] |
|
[![Node.js Version][node-version-image]][node-version-url] |
|
[![Build Status][ci-image]][ci-url] |
|
[![Test Coverage][coveralls-image]][coveralls-url] |
|
|
|
The ultimate javascript content-type utility. |
|
|
|
Similar to [the `[email protected]` module](https://www.npmjs.com/package/mime), except: |
|
|
|
- __No fallbacks.__ Instead of naively returning the first available type, |
|
`mime-types` simply returns `false`, so do |
|
`var 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 |
|
|
|
This is a [Node.js](https://nodejs.org/en/) module available through the |
|
[npm registry](https://www.npmjs.com/). Installation is done using the |
|
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): |
|
|
|
```sh |
|
$ npm install mime-types |
|
``` |
|
|
|
## Adding Types |
|
|
|
All mime types are based on [mime-db](https://www.npmjs.com/package/mime-db), |
|
so open a PR there if you'd like to add mime types. |
|
|
|
## API |
|
|
|
```js |
|
var mime = require('mime-types') |
|
``` |
|
|
|
All functions return `false` if input is invalid or not found. |
|
|
|
### mime.lookup(path) |
|
|
|
Lookup the content-type associated with a file. |
|
|
|
```js |
|
mime.lookup('json') // 'application/json' |
|
mime.lookup('.md') // 'text/markdown' |
|
mime.lookup('file.html') // 'text/html' |
|
mime.lookup('folder/file.js') // 'application/javascript' |
|
mime.lookup('folder/.htaccess') // false |
|
|
|
mime.lookup('cats') // false |
|
``` |
|
|
|
### mime.contentType(type) |
|
|
|
Create a full content-type header given a content-type or extension. |
|
When given an extension, `mime.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, `mime.charset` |
|
is used to get the default charset and add to the returned content-type. |
|
|
|
```js |
|
mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' |
|
mime.contentType('file.json') // 'application/json; charset=utf-8' |
|
mime.contentType('text/html') // 'text/html; charset=utf-8' |
|
mime.contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1' |
|
|
|
// from a full path |
|
mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' |
|
``` |
|
|
|
### mime.extension(type) |
|
|
|
Get the default extension for a content-type. |
|
|
|
```js |
|
mime.extension('application/octet-stream') // 'bin' |
|
``` |
|
|
|
### mime.charset(type) |
|
|
|
Lookup the implied default charset of a content-type. |
|
|
|
```js |
|
mime.charset('text/markdown') // 'UTF-8' |
|
``` |
|
|
|
### var type = mime.types[extension] |
|
|
|
A map of content-types by extension. |
|
|
|
### [extensions...] = mime.extensions[type] |
|
|
|
A map of extensions by content-type. |
|
|
|
## License |
|
|
|
[MIT](LICENSE) |
|
|
|
[ci-image]: https://badgen.net/github/checks/jshttp/mime-types/master?label=ci |
|
[ci-url]: https://github.com/jshttp/mime-types/actions/workflows/ci.yml |
|
[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-types/master |
|
[coveralls-url]: https://coveralls.io/r/jshttp/mime-types?branch=master |
|
[node-version-image]: https://badgen.net/npm/node/mime-types |
|
[node-version-url]: https://nodejs.org/en/download |
|
[npm-downloads-image]: https://badgen.net/npm/dm/mime-types |
|
[npm-url]: https://npmjs.org/package/mime-types |
|
[npm-version-image]: https://badgen.net/npm/v/mime-types |
|
|