[6a3a178] | 1 | # mime-types
|
---|
| 2 |
|
---|
| 3 | [![NPM Version][npm-version-image]][npm-url]
|
---|
| 4 | [![NPM Downloads][npm-downloads-image]][npm-url]
|
---|
| 5 | [![Node.js Version][node-version-image]][node-version-url]
|
---|
| 6 | [![Build Status][ci-image]][ci-url]
|
---|
| 7 | [![Test Coverage][coveralls-image]][coveralls-url]
|
---|
| 8 |
|
---|
| 9 | The ultimate javascript content-type utility.
|
---|
| 10 |
|
---|
| 11 | Similar to [the `mime@1.x` module](https://www.npmjs.com/package/mime), except:
|
---|
| 12 |
|
---|
| 13 | - __No fallbacks.__ Instead of naively returning the first available type,
|
---|
| 14 | `mime-types` simply returns `false`, so do
|
---|
| 15 | `var type = mime.lookup('unrecognized') || 'application/octet-stream'`.
|
---|
| 16 | - No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`.
|
---|
| 17 | - No `.define()` functionality
|
---|
| 18 | - Bug fixes for `.lookup(path)`
|
---|
| 19 |
|
---|
| 20 | Otherwise, the API is compatible with `mime` 1.x.
|
---|
| 21 |
|
---|
| 22 | ## Install
|
---|
| 23 |
|
---|
| 24 | This is a [Node.js](https://nodejs.org/en/) module available through the
|
---|
| 25 | [npm registry](https://www.npmjs.com/). Installation is done using the
|
---|
| 26 | [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
---|
| 27 |
|
---|
| 28 | ```sh
|
---|
| 29 | $ npm install mime-types
|
---|
| 30 | ```
|
---|
| 31 |
|
---|
| 32 | ## Adding Types
|
---|
| 33 |
|
---|
| 34 | All mime types are based on [mime-db](https://www.npmjs.com/package/mime-db),
|
---|
| 35 | so open a PR there if you'd like to add mime types.
|
---|
| 36 |
|
---|
| 37 | ## API
|
---|
| 38 |
|
---|
| 39 | ```js
|
---|
| 40 | var mime = require('mime-types')
|
---|
| 41 | ```
|
---|
| 42 |
|
---|
| 43 | All functions return `false` if input is invalid or not found.
|
---|
| 44 |
|
---|
| 45 | ### mime.lookup(path)
|
---|
| 46 |
|
---|
| 47 | Lookup the content-type associated with a file.
|
---|
| 48 |
|
---|
| 49 | ```js
|
---|
| 50 | mime.lookup('json') // 'application/json'
|
---|
| 51 | mime.lookup('.md') // 'text/markdown'
|
---|
| 52 | mime.lookup('file.html') // 'text/html'
|
---|
| 53 | mime.lookup('folder/file.js') // 'application/javascript'
|
---|
| 54 | mime.lookup('folder/.htaccess') // false
|
---|
| 55 |
|
---|
| 56 | mime.lookup('cats') // false
|
---|
| 57 | ```
|
---|
| 58 |
|
---|
| 59 | ### mime.contentType(type)
|
---|
| 60 |
|
---|
| 61 | Create a full content-type header given a content-type or extension.
|
---|
| 62 | When given an extension, `mime.lookup` is used to get the matching
|
---|
| 63 | content-type, otherwise the given content-type is used. Then if the
|
---|
| 64 | content-type does not already have a `charset` parameter, `mime.charset`
|
---|
| 65 | is used to get the default charset and add to the returned content-type.
|
---|
| 66 |
|
---|
| 67 | ```js
|
---|
| 68 | mime.contentType('markdown') // 'text/x-markdown; charset=utf-8'
|
---|
| 69 | mime.contentType('file.json') // 'application/json; charset=utf-8'
|
---|
| 70 | mime.contentType('text/html') // 'text/html; charset=utf-8'
|
---|
| 71 | mime.contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1'
|
---|
| 72 |
|
---|
| 73 | // from a full path
|
---|
| 74 | mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'
|
---|
| 75 | ```
|
---|
| 76 |
|
---|
| 77 | ### mime.extension(type)
|
---|
| 78 |
|
---|
| 79 | Get the default extension for a content-type.
|
---|
| 80 |
|
---|
| 81 | ```js
|
---|
| 82 | mime.extension('application/octet-stream') // 'bin'
|
---|
| 83 | ```
|
---|
| 84 |
|
---|
| 85 | ### mime.charset(type)
|
---|
| 86 |
|
---|
| 87 | Lookup the implied default charset of a content-type.
|
---|
| 88 |
|
---|
| 89 | ```js
|
---|
| 90 | mime.charset('text/markdown') // 'UTF-8'
|
---|
| 91 | ```
|
---|
| 92 |
|
---|
| 93 | ### var type = mime.types[extension]
|
---|
| 94 |
|
---|
| 95 | A map of content-types by extension.
|
---|
| 96 |
|
---|
| 97 | ### [extensions...] = mime.extensions[type]
|
---|
| 98 |
|
---|
| 99 | A map of extensions by content-type.
|
---|
| 100 |
|
---|
| 101 | ## License
|
---|
| 102 |
|
---|
| 103 | [MIT](LICENSE)
|
---|
| 104 |
|
---|
| 105 | [ci-image]: https://badgen.net/github/checks/jshttp/mime-types/master?label=ci
|
---|
| 106 | [ci-url]: https://github.com/jshttp/mime-types/actions?query=workflow%3Aci
|
---|
| 107 | [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-types/master
|
---|
| 108 | [coveralls-url]: https://coveralls.io/r/jshttp/mime-types?branch=master
|
---|
| 109 | [node-version-image]: https://badgen.net/npm/node/mime-types
|
---|
| 110 | [node-version-url]: https://nodejs.org/en/download
|
---|
| 111 | [npm-downloads-image]: https://badgen.net/npm/dm/mime-types
|
---|
| 112 | [npm-url]: https://npmjs.org/package/mime-types
|
---|
| 113 | [npm-version-image]: https://badgen.net/npm/v/mime-types
|
---|