Socket
Socket
Sign inDemoInstall

mime-matcher

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mime-matcher

Utility function checking if string is mime type from allowed range


Version published
Maintainers
1
Created
Source

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

Keywords

FAQs

Package last updated on 04 Dec 2019

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc