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
			| 
								 
											4 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
							 | 
						||
| 
								 | 
							
								}
							 |