You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.1 KiB
91 lines
2.1 KiB
7 years ago
|
# mime
|
||
|
|
||
|
Comprehensive MIME type mapping API based on mime-db module.
|
||
|
|
||
|
## Install
|
||
|
|
||
|
Install with [npm](http://github.com/isaacs/npm):
|
||
|
|
||
|
npm install mime
|
||
|
|
||
|
## Contributing / Testing
|
||
|
|
||
|
npm run test
|
||
|
|
||
|
## Command Line
|
||
|
|
||
|
mime [path_string]
|
||
|
|
||
|
E.g.
|
||
|
|
||
|
> mime scripts/jquery.js
|
||
|
application/javascript
|
||
|
|
||
|
## API - Queries
|
||
|
|
||
|
### mime.lookup(path)
|
||
|
Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g.
|
||
|
|
||
|
```js
|
||
|
var mime = require('mime');
|
||
|
|
||
|
mime.lookup('/path/to/file.txt'); // => 'text/plain'
|
||
|
mime.lookup('file.txt'); // => 'text/plain'
|
||
|
mime.lookup('.TXT'); // => 'text/plain'
|
||
|
mime.lookup('htm'); // => 'text/html'
|
||
|
```
|
||
|
|
||
|
### mime.default_type
|
||
|
Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)
|
||
|
|
||
|
### mime.extension(type)
|
||
|
Get the default extension for `type`
|
||
|
|
||
|
```js
|
||
|
mime.extension('text/html'); // => 'html'
|
||
|
mime.extension('application/octet-stream'); // => 'bin'
|
||
|
```
|
||
|
|
||
|
### mime.charsets.lookup()
|
||
|
|
||
|
Map mime-type to charset
|
||
|
|
||
|
```js
|
||
|
mime.charsets.lookup('text/plain'); // => 'UTF-8'
|
||
|
```
|
||
|
|
||
|
(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)
|
||
|
|
||
|
## API - Defining Custom Types
|
||
|
|
||
|
Custom type mappings can be added on a per-project basis via the following APIs.
|
||
|
|
||
|
### mime.define()
|
||
|
|
||
|
Add custom mime/extension mappings
|
||
|
|
||
|
```js
|
||
|
mime.define({
|
||
|
'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
|
||
|
'application/x-my-type': ['x-mt', 'x-mtt'],
|
||
|
// etc ...
|
||
|
});
|
||
|
|
||
|
mime.lookup('x-sft'); // => 'text/x-some-format'
|
||
|
```
|
||
|
|
||
|
The first entry in the extensions array is returned by `mime.extension()`. E.g.
|
||
|
|
||
|
```js
|
||
|
mime.extension('text/x-some-format'); // => 'x-sf'
|
||
|
```
|
||
|
|
||
|
### mime.load(filepath)
|
||
|
|
||
|
Load mappings from an Apache ".types" format file
|
||
|
|
||
|
```js
|
||
|
mime.load('./my_project.types');
|
||
|
```
|
||
|
The .types file format is simple - See the `types` dir for examples.
|