|
|
- <!--
- -- This file is auto-generated from src/README_js.md. Changes should be made there.
- -->
- # Mime
-
- A comprehensive, compact MIME type module.
-
- [](https://travis-ci.org/broofa/mime)
-
- ## Version 2 Notes
-
- Version 2 is a breaking change from 1.x as the semver implies. Specifically:
-
- * `lookup()` renamed to `getType()`
- * `extension()` renamed to `getExtension()`
- * `charset()` and `load()` methods have been removed
-
- If you prefer the legacy version of this module please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/mime/tree/v1.4.0).
-
- ## Install
-
- ### NPM
- ```
- npm install mime
- ```
-
- ### Browser
-
- It is recommended that you use a bundler such as
- [webpack](https://webpack.github.io/) or [browserify](http://browserify.org/) to
- package your code. However, browser-ready versions are available via wzrd.in.
- E.g. For the full version:
-
- <script src="https://wzrd.in/standalone/mime@latest"></script>
- <script>
- mime.getType(...); // etc.
- </script>
-
- Or, for the `mime/lite` version:
-
- <script src="https://wzrd.in/standalone/mime%2flite@latest"></script>
- <script>
- mimelite.getType(...); // (Note `mimelite` here)
- </script>
-
- ## Quick Start
-
- For the full version (800+ MIME types, 1,000+ extensions):
-
- ```javascript
- const mime = require('mime');
-
- mime.getType('txt'); // ⇨ 'text/plain'
- mime.getExtension('text/plain'); // ⇨ 'txt'
- ```
-
- See [Mime API](#mime-api) below for API details.
-
- ## Lite Version
-
- There is also a "lite" version of this module that omits vendor-specific
- (`*/vnd.*`) and experimental (`*/x-*`) types. It weighs in at ~2.5KB, compared
- to 8KB for the full version. To load the lite version:
-
- ```javascript
- const mime = require('mime/lite');
- ```
-
- ## Mime .vs. mime-types .vs. mime-db modules
-
- For those of you wondering about the difference between these [popular] NPM modules,
- here's a brief rundown ...
-
- [`mime-db`](https://github.com/jshttp/mime-db) is "the source of
- truth" for MIME type information. It is not an API. Rather, it is a canonical
- dataset of mime type definitions pulled from IANA, Apache, NGINX, and custom mappings
- submitted by the Node.js community.
-
- [`mime-types`](https://github.com/jshttp/mime-types) is a thin
- wrapper around mime-db that provides an API drop-in compatible(ish) with `mime @ < v1.3.6` API.
-
- `mime` is, as of v2, a self-contained module bundled with a pre-optimized version
- of the `mime-db` dataset. It provides a simplified API with the following characteristics:
-
- * Intelligently resolved type conflicts (See [mime-score](https://github.com/broofa/mime-score) for details)
- * Method naming consistent with industry best-practices
- * Compact footprint. E.g. The minified+compressed sizes of the various modules:
-
- Module | Size
- --- | ---
- `mime-db` | 18 KB
- `mime-types` | same as mime-db
- `mime` | 8 KB
- `mime/lite` | 2 KB
-
- ## Mime API
-
- Both `require('mime')` and `require('mime/lite')` return instances of the MIME
- class, documented below.
-
- Note: Inputs to this API are case-insensitive. Outputs (returned values) will
- be lowercase.
-
- ### new Mime(typeMap, ... more maps)
-
- Most users of this module will not need to create Mime instances directly.
- However if you would like to create custom mappings, you may do so as follows
- ...
-
- ```javascript
- // Require Mime class
- const Mime = require('mime/Mime');
-
- // Define mime type -> extensions map
- const typeMap = {
- 'text/abc': ['abc', 'alpha', 'bet'],
- 'text/def': ['leppard']
- };
-
- // Create and use Mime instance
- const myMime = new Mime(typeMap);
- myMime.getType('abc'); // ⇨ 'text/abc'
- myMime.getExtension('text/def'); // ⇨ 'leppard'
- ```
-
- If more than one map argument is provided, each map is `define()`ed (see below), in order.
-
- ### mime.getType(pathOrExtension)
-
- Get mime type for the given path or extension. E.g.
-
- ```javascript
- mime.getType('js'); // ⇨ 'application/javascript'
- mime.getType('json'); // ⇨ 'application/json'
-
- mime.getType('txt'); // ⇨ 'text/plain'
- mime.getType('dir/text.txt'); // ⇨ 'text/plain'
- mime.getType('dir\\text.txt'); // ⇨ 'text/plain'
- mime.getType('.text.txt'); // ⇨ 'text/plain'
- mime.getType('.txt'); // ⇨ 'text/plain'
- ```
-
- `null` is returned in cases where an extension is not detected or recognized
-
- ```javascript
- mime.getType('foo/txt'); // ⇨ null
- mime.getType('bogus_type'); // ⇨ null
- ```
-
- ### mime.getExtension(type)
- Get extension for the given mime type. Charset options (often included in
- Content-Type headers) are ignored.
-
- ```javascript
- mime.getExtension('text/plain'); // ⇨ 'txt'
- mime.getExtension('application/json'); // ⇨ 'json'
- mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
- ```
-
- ### mime.define(typeMap[, force = false])
-
- Define [more] type mappings.
-
- `typeMap` is a map of type -> extensions, as documented in `new Mime`, above.
-
- By default this method will throw an error if you try to map a type to an
- extension that is already assigned to another type. Passing `true` for the
- `force` argument will suppress this behavior (overriding any previous mapping).
-
- ```javascript
- mime.define({'text/x-abc': ['abc', 'abcd']});
-
- mime.getType('abcd'); // ⇨ 'text/x-abc'
- mime.getExtension('text/x-abc') // ⇨ 'abc'
- ```
-
- ## Command Line
-
- mime [path_or_extension]
-
- E.g.
-
- > mime scripts/jquery.js
- application/javascript
-
- ----
- Markdown generated from [src/README_js.md](src/README_js.md) by [](https://github.com/broofa/runmd)
|