blob: 2984e4075101fbfcb923bfd1921ec599891c2ed8 [file] [log] [blame]
/*!
* compressible
* Copyright(c) 2013 Jonathan Ong
* Copyright(c) 2014 Jeremiah Senkpiel
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
'use strict'
/**
* Module dependencies.
* @private
*/
var db = require('mime-db')
/**
* Module variables.
* @private
*/
var compressibleTypeRegExp = /^text\/|\+json$|\+text$|\+xml$/i
var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/
/**
* Module exports.
* @public
*/
module.exports = compressible
/**
* Checks if a type is compressible.
*
* @param {string} type
* @return {Boolean} compressible
* @public
*/
function compressible(type) {
if (!type || typeof type !== 'string') {
return false
}
// strip parameters
var match = extractTypeRegExp.exec(type)
var mime = match && match[1].toLowerCase()
var data = db[mime]
if ((data && data.compressible) || compressibleTypeRegExp.test(mime)) {
return true
}
return data
? data.compressible
: undefined
}