You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*! * 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 COMPRESSIBLE_TYPE_REGEXP = /^text\/|\+(?:json|text|xml)$/i var EXTRACT_TYPE_REGEXP = /^\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 = EXTRACT_TYPE_REGEXP.exec(type) var mime = match && match[1].toLowerCase() var data = db[mime]
// return database information
if (data && data.compressible !== undefined) { return data.compressible }
// fallback to regexp or unknown
return COMPRESSIBLE_TYPE_REGEXP.test(mime) || undefined }
|