compressible
Advanced tools
Comparing version 2.0.2 to 2.0.3
37
index.js
/*! | ||
* compressible | ||
* Copyright(c) 2013 Jonathan Ong | ||
* Copyright(c) 2014 Jeremiah Senkpiel | ||
* Copyright(c) 2015 Douglas Christopher Wilson | ||
* MIT Licensed | ||
@@ -9,2 +11,3 @@ */ | ||
* Module dependencies. | ||
* @private | ||
*/ | ||
@@ -15,3 +18,12 @@ | ||
/** | ||
* Module variables. | ||
* @private | ||
*/ | ||
var compressibleTypeRegExp = /^text\/|\+json$|\+text$|\+xml$/i | ||
var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/ | ||
/** | ||
* Module exports. | ||
* @public | ||
*/ | ||
@@ -26,17 +38,22 @@ | ||
* @return {Boolean} compressible | ||
& @public | ||
*/ | ||
function compressible(type) { | ||
if (!type || typeof type !== "string") return false | ||
if (!type || typeof type !== 'string') { | ||
return false | ||
} | ||
// Strip charset | ||
var i = type.indexOf(';') | ||
if (~i) type = type.slice(0, i) | ||
// strip parameters | ||
var match = extractTypeRegExp.exec(type) | ||
var mime = match && match[1].toLowerCase() | ||
var data = db[mime] | ||
// handle types that have capitals or excess space | ||
type = type.trim().toLowerCase() | ||
// attempt to look up from database; fallback to regex if not found | ||
var mime = db[type] | ||
return mime ? mime.compressible : /^text\/|\+json$|\+text$|\+xml$/.test(type) | ||
if ((data && data.compressible) || compressibleTypeRegExp.test(mime)) { | ||
return true | ||
} | ||
return data | ||
? data.compressible | ||
: undefined | ||
} |
{ | ||
"name": "compressible", | ||
"description": "Compressible Content-Type / mime checking", | ||
"version": "2.0.2", | ||
"version": "2.0.3", | ||
"contributors": [ | ||
@@ -18,13 +18,15 @@ "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)", | ||
"dependencies": { | ||
"mime-db": ">= 1.1.2 < 2" | ||
"mime-db": ">= 1.13.0 < 2" | ||
}, | ||
"devDependencies": { | ||
"istanbul": "0.3.5", | ||
"istanbul": "0.3.14", | ||
"mocha": "~1.21.5" | ||
}, | ||
"engines": { | ||
"node": ">= 0.6.0" | ||
"node": ">= 0.6" | ||
}, | ||
"files": [ | ||
"HISTORY.md", | ||
"LICENSE", | ||
"README.md", | ||
"index.js" | ||
@@ -34,5 +36,5 @@ ], | ||
"test": "mocha --reporter spec --bail --check-leaks test/", | ||
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot -check-leaks", | ||
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks", | ||
"test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot --check-leaks" | ||
} | ||
} |
@@ -32,11 +32,11 @@ # compressible | ||
[npm-image]: https://img.shields.io/npm/v/compressible.svg?style=flat | ||
[npm-image]: https://img.shields.io/npm/v/compressible.svg | ||
[npm-url]: https://npmjs.org/package/compressible | ||
[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat | ||
[node-version-image]: https://img.shields.io/node/v/compressible.svg | ||
[node-version-url]: http://nodejs.org/download/ | ||
[travis-image]: https://img.shields.io/travis/jshttp/compressible.svg?style=flat | ||
[travis-image]: https://img.shields.io/travis/jshttp/compressible/master.svg | ||
[travis-url]: https://travis-ci.org/jshttp/compressible | ||
[coveralls-image]: https://img.shields.io/coveralls/jshttp/compressible.svg?style=flat | ||
[coveralls-image]: https://img.shields.io/coveralls/jshttp/compressible/master.svg | ||
[coveralls-url]: https://coveralls.io/r/jshttp/compressible?branch=master | ||
[downloads-image]: https://img.shields.io/npm/dm/compressible.svg?style=flat | ||
[downloads-image]: https://img.shields.io/npm/dm/compressible.svg | ||
[downloads-url]: https://npmjs.org/package/compressible |
Sorry, the diff of this file is not supported yet
4990
5
45
Updatedmime-db@>= 1.13.0 < 2