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.
		
		
		
		
		
			
		
			
				
					59 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					59 lines
				
				1.0 KiB
			| 
											2 years ago
										 | /*! | ||
|  |  * 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 | ||
|  | } |