diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/mime/src/README_js.md | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/mime/src/README_js.md')
| -rw-r--r-- | node_modules/mime/src/README_js.md | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/node_modules/mime/src/README_js.md b/node_modules/mime/src/README_js.md new file mode 100644 index 00000000..f38aca01 --- /dev/null +++ b/node_modules/mime/src/README_js.md @@ -0,0 +1,179 @@ +```javascript --hide +runmd.onRequire = path => path.replace(/^mime/, '..'); +``` +# Mime + +A comprehensive, compact MIME type module. + +## 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/node-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 --run default +const mime = require('mime'); + +mime.getType('txt'); // RESULT +mime.getExtension('text/plain'); // RESULT +``` + +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. + +### 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 --run default +// 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'); // RESULT +myMime.getExtension('text/def'); // RESULT +``` + +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 --run default +mime.getType('js'); // RESULT +mime.getType('json'); // RESULT + +mime.getType('txt'); // RESULT +mime.getType('dir/text.txt'); // RESULT +mime.getType('dir\\text.txt'); // RESULT +mime.getType('.text.txt'); // RESULT +mime.getType('.txt'); // RESULT +``` + +`null` is returned in cases where an extension is not detected or recognized + +```javascript --run default +mime.getType('foo/txt'); // RESULT +mime.getType('bogus_type'); // RESULT +``` + +### mime.getExtension(type) +Get extension for the given mime type. Charset options (often included in +Content-Type headers) are ignored. + +```javascript --run default +mime.getExtension('text/plain'); // RESULT +mime.getExtension('application/json'); // RESULT +mime.getExtension('text/html; charset=utf8'); // RESULT +``` + +### 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 --run default +mime.define({'text/x-abc': ['abc', 'abcd']}); + +mime.getType('abcd'); // RESULT +mime.getExtension('text/x-abc') // RESULT +``` + +## Command Line + + mime [path_or_extension] + +E.g. + + > mime scripts/jquery.js + application/javascript |
