mirror of
https://github.com/nodejs/node.git
synced 2024-11-29 23:16:30 +01:00
aa496f4bee
If the stream is destroyed while the transform is still being applied, push() should not be called, and the internal state should be cleared. See: https://github.com/koajs/compress/issues/60 PR-URL: https://github.com/nodejs/node/pull/14330 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
22 lines
456 B
JavaScript
22 lines
456 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const zlib = require('zlib');
|
|
const { Writable } = require('stream');
|
|
|
|
// verify that the zlib transform does not error in case
|
|
// it is destroyed with data still in flight
|
|
|
|
const ts = zlib.createGzip();
|
|
|
|
const ws = new Writable({
|
|
write: common.mustCall((chunk, enc, cb) => {
|
|
setImmediate(cb);
|
|
ts.destroy();
|
|
})
|
|
});
|
|
|
|
const buf = Buffer.allocUnsafe(1024 * 1024 * 20);
|
|
ts.end(buf);
|
|
ts.pipe(ws);
|