Gathering detailed insights and metrics for mrmime
Gathering detailed insights and metrics for mrmime
Gathering detailed insights and metrics for mrmime
Gathering detailed insights and metrics for mrmime
A tiny (2.8kB) and fast utility for getting a MIME type from an extension or filename
npm install mrmime
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
312 Stars
28 Commits
7 Forks
6 Watching
1 Branches
3 Contributors
Updated on 29 Oct 2024
TypeScript (88.36%)
JavaScript (11.64%)
Cumulative downloads
Total Downloads
Last day
-0.8%
2,043,160
Compared to previous day
Last week
4.4%
10,640,106
Compared to previous week
Last month
13.7%
43,753,069
Compared to previous month
Last year
89.1%
412,414,217
Compared to previous year
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
1import { lookup, mimes } from 'mrmime'; 2 3// Get a MIME type 4// --- 5lookup('txt'); //=> "text/plain" 6lookup('.txt'); //=> "text/plain" 7lookup('a.txt'); //=> "text/plain" 8 9// Unknown extension 10// --- 11lookup('.xyz'); //=> undefined 12 13// Add extension to dictionary 14// --- 15mimes['xyz'] = 'hello/world'; 16lookup('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
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
no dangerous workflow patterns detected
Reason
license file detected
Details
Reason
0 existing vulnerabilities detected
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
Found 2/28 approved changesets -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Score
Last Scanned on 2024-11-18
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More