59 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*!
 | 
						|
 * 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
 | 
						|
}
 |