README.md 3 KB
Newer Older
1 2
# mime-types

3 4
[![NPM Version][npm-version-image]][npm-url]
[![NPM Downloads][npm-downloads-image]][npm-url]
5 6 7
[![Node.js Version][node-version-image]][node-version-url]
[![Build Status][travis-image]][travis-url]
[![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 14 15
- __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'`.
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 25 26 27
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):

28 29 30
```sh
$ npm install mime-types
```
31

32 33
## Adding Types

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 38 39 40 41 42 43 44 45 46 47 48 49

## 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
50 51 52 53 54
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
55 56 57 58 59 60 61 62 63 64 65

mime.lookup('cats') // false
```

### mime.contentType(type)

Create a full content-type header given a content-type or extension.

```js
mime.contentType('markdown')  // 'text/x-markdown; charset=utf-8'
mime.contentType('file.json') // 'application/json; charset=utf-8'
66 67 68

// from a full path
mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
```

### 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
84
mime.charset('text/markdown') // 'UTF-8'
85 86
```

87
### var type = mime.types[extension]
88 89 90

A map of content-types by extension.

91
### [extensions...] = mime.extensions[type]
92 93 94 95 96 97

A map of extensions by content-type.

## License

[MIT](LICENSE)
98

99 100 101 102 103
[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
104
[npm-url]: https://npmjs.org/package/mime-types
105 106
[npm-version-image]: https://badgen.net/npm/v/mime-types
[travis-image]: https://badgen.net/travis/jshttp/mime-types/master
107
[travis-url]: https://travis-ci.org/jshttp/mime-types