| 
				
					
						 | 
			4 years ago | |
|---|---|---|
| .. | ||
| index.d.ts | 4 years ago | |
| index.js | 4 years ago | |
| index.mjs | 4 years ago | |
| license | 4 years ago | |
| package.json | 4 years ago | |
| readme.md | 4 years ago | |
		
			
				
				readme.md
			
		
		
	
	
Features
- 
Lightweight – 2.8kB gzip
Only includes standard mime types; all experimental and vendor-specific mimetypes removed. - 
Performant
All lookups are O(1) with minimal processing. - 
Comprehensive Dictionary
Generated frommime-db, which aggregates the IANA, NGINX, and Apache datasets. - 
Customizable
Exposes themimesdictionary for easy additions or overrides. - 
Supports Native ESM and Deno
Ships with CommonJS and ESM support! 
Install
$ npm install --save mrmime
Usage
import { lookup, mimes } from 'mrmime';
// Get a MIME type
// ---
lookup('txt'); //=> "text/plain"
lookup('.txt'); //=> "text/plain"
lookup('a.txt'); //=> "text/plain"
// Unknown extension
// ---
lookup('.xyz'); //=> undefined
// Add extension to dictionary
// ---
mimes['xyz'] = 'hello/world';
lookup('xyz'); //=> "hello/world"
API
lookup(input)
Returns: string or undefined
input
Type: string
The extension or filename to lookup.
Important:
- Any
 inputvalue is cast to string, lowercased, and trimmed.- If a filename or filepath is provided, only the extension will be used.
 
Benchmarks
Running on Node v16.8.0
Load times:
  mrmime     0.963ms
  mime/lite  3.281ms
  mime       6.751ms
Benchmark :: plain ("ext")
  mime          x 598,849 ops/sec ±0.28% (94 runs sampled)
  mime/lite     x 536,643 ops/sec ±0.11% (97 runs sampled)
  mrmime        x 835,885 ops/sec ±0.20% (97 runs sampled)
Benchmark :: leading (".ext")
  mime          x 368,656 ops/sec ±0.19% (99 runs sampled)
  mime/lite     x 368,318 ops/sec ±0.13% (97 runs sampled)
  mrmime        x 533,643 ops/sec ±0.10% (96 runs sampled)
Benchmark :: filename ("file.ext")
  mime          x 326,907 ops/sec ±0.17% (95 runs sampled)
  mime/lite     x 327,479 ops/sec ±0.12% (98 runs sampled)
  mrmime        x 512,823 ops/sec ±0.12% (99 runs sampled)
Credits
Of course, a thank-you to mime serving the community all these years & for being a all-encompassing MIME type library. I've only ever needed lookup/getType functionality – and now ESM support – so mrmime can only ever support 1/3 of what mime offers, at best.
This would not be possible without the team behind mime-db, who have painstakingly maintained an amazing database for 7+ years.
Artwork created by mintinol, which I found here.
Finally, thanks to Tim Branyen for donating the package name :)
License
MIT © Luke Edwards