Security News
New Proposed CISA Mandate Would Require Critical Infrastructure to Report Ransom Payments Within 24 Hours
CISA has proposed a set of new rules that would require critical infrastructure to report cyber incidents and ransom payments.
mrmime
Advanced tools
A tiny (2.8kB) and fast utility for getting a MIME type from an extension or filename
Weekly downloads
Readme
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 from mime-db
, which aggregates the IANA, NGINX, and Apache datasets.
Customizable
Exposes the mimes
dictionary for easy additions or overrides.
Supports Native ESM and Deno
Ships with CommonJS and ESM support!
$ npm install --save mrmime
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"
Returns: string
or undefined
Type: string
The extension or filename to lookup.
Important:
- Any
input
value is cast to string, lowercased, and trimmed.- If a filename or filepath is provided, only the extension will be used.
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)
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 :)
MIT © Luke Edwards
FAQs
A tiny (2.8kB) and fast utility for getting a MIME type from an extension or filename
The npm package mrmime receives a total of 5,942,962 weekly downloads. As such, mrmime popularity was classified as popular.
We found that mrmime demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA has proposed a set of new rules that would require critical infrastructure to report cyber incidents and ransom payments.
Security News
Redis is no longer OSS, breaking its explicit commitment to remain under the BSD 3-Clause License forever. This has angered contributors who are now working to fork the software.
Product
Socket AI now enables 'AI detected potential malware' alerts by default, ensuring users benefit from AI-powered state-of-the-art malware detection without needing to opt-in.