12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*!
- * 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
- }
|