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.
		
		
		
		
		
			
		
			
				
					
					
						
							58 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							58 lines
						
					
					
						
							1.0 KiB
						
					
					
				/*! | 
						|
 * 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 | 
						|
}
 | 
						|
 |