1.0.5 • Published 4 years ago

mime-matcher v1.0.5

Weekly downloads
489
License
MIT
Repository
github
Last release
4 years ago

Build Status codecov npm

Motivation

MimeMatcher is very simple library for checking if mime type string is in allowed range. You can also match mime types against wildcards, like */* or 'application/*'

Instalation

You can install it from npm:

npm install mime-matcher --save

Or you can download mime-matcher.min.js from the dist folder and then include it in html file:

<script src="mime-matcher.min.js"></script>

Usage

import MimeMatcher from 'mime-matcher'

const matcher = new MimeMatcher('image/gif')

matcher.match('image/gif') //true
matcher.match('image/jpeg') //false

You can also use wildcards:

import MimeMatcher from 'mime-matcher'

new MimeMatcher('image/*').match('image/gif') //true
new MimeMatcher('*/*').match('text/xml') //true

You can also use multiple mime types to match against:

import MimeMatcher from 'mime-matcher'

const matcher = new MimeMatcher('image/*', 'text/*')

matcher.match('text/xml') //true
matcher.match('image/gif') //true
matcher.match('audio/mpeg') //false

Optional mime type parameter is ignored:

import MimeMatcher from 'mime-matcher'

const matcher = new MimeMatcher('text/xml')

matcher.match('text/xml; encoding=utf-8') //true

You can also use higher-order function matcher, which accepts expected types and returns another function, which you can use for matching:

import { matcher } from 'mime-matcher'

const m = matcher('text/*')
m('text/xml') //true

matcher('image/*', 'text/*')("image/gif") //true

There is also function parse which returns object containing data of parsed mime-type:

import { parse as parseMimeType } from 'mime-matcher'

parseMimeType('application/json') 
/*
{
    valid: true
    type: "application",
    subType: "json"
}
*/

parseMimeType('text/xml; encoding=utf-8') 
/*
{
    valid: true
    type: "text",
    subType: "xml",
    parameter: "encoding=utf-8"
}
*/


parseMimeType('invalid') 
/*
{
    valid: false
}
*/

You can also import function isValid as shorthand for checking validity:

import { isValid as isValidMimeType } from 'mime-matcher'

isValidMimeType('text/xml') //true