選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
unknown fe79185e87 ali aslani 1年前
..
index.d.ts ali aslani 1年前
index.js ali aslani 1年前
index.mjs ali aslani 1年前
license ali aslani 1年前
package.json ali aslani 1年前
readme.md ali aslani 1年前

readme.md

mrmime
A tiny (2.8kB) and fast utility for getting a MIME type from an extension or filename

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 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!

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 input value 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