Socket
Socket
Sign inDemoInstall

compression

Package Overview
Dependencies
Maintainers
7
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compression - npm Package Compare versions

Comparing version 1.0.4 to 1.0.5

6

HISTORY.md

@@ -0,1 +1,7 @@

1.0.5 / 2014-06-03
==================
* fix listeners for delayed stream creation
- fixes regression for certain `stream.pipe(res)` situations
1.0.4 / 2014-06-03

@@ -2,0 +8,0 @@ ==================

42

index.js

@@ -59,7 +59,8 @@ /*!

return function compression(req, res, next){
var compress = true
var listeners = []
var write = res.write
var on = res.on
var end = res.end
, compress = true
, stream;
var stream

@@ -112,12 +113,24 @@ // see #8

res.on = function(type, listener){
if (!stream || type !== 'drain') {
if (!listeners || type !== 'drain') {
return on.call(this, type, listener)
}
return stream.on(type, listener)
if (stream) {
return stream.on(type, listener)
}
// buffer listeners for future stream
listeners.push([type, listener])
return this
}
function nocompress(){
addListeners(res, on, listeners)
listeners = null
}
onHeaders(res, function(){
// default request filter
if (!filter(req, res)) return;
if (!filter(req, res)) return nocompress()

@@ -127,3 +140,3 @@ // vary

if (!compress) return;
if (!compress) return nocompress()

@@ -133,6 +146,6 @@ var encoding = res.getHeader('Content-Encoding') || 'identity';

// already encoded
if ('identity' != encoding) return;
if ('identity' !== encoding) return nocompress()
// head
if ('HEAD' == req.method) return;
if ('HEAD' === req.method) return nocompress()

@@ -144,6 +157,7 @@ // compression method

// negotiation failed
if (!method || method === 'identity') return;
if (!method || method === 'identity') nocompress()
// compression stream
stream = exports.methods[method](options);
addListeners(stream, stream.on, listeners)

@@ -179,2 +193,12 @@ // overwrite the flush method

/**
* Add bufferred listeners to stream
*/
function addListeners(stream, on, listeners) {
for (var i = 0; i < listeners.length; i++) {
on.apply(stream, listeners[i])
}
}
function noop(){}

@@ -181,0 +205,0 @@

{
"name": "compression",
"description": "Compression middleware for connect and node.js",
"version": "1.0.4",
"version": "1.0.5",
"author": {

@@ -6,0 +6,0 @@ "name": "Jonathan Ong",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc