No Description
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.
Zebulon McCorkle fc506f8c97
Add ITP bug number to changelog
11 months ago
debian Add ITP bug number to changelog 11 months ago
test tests: add more tests 4 years ago
.gitignore cleanup dotfiles 4 years ago
.travis.yml build: support Node.js 5.x 3 years ago 1.0.4 3 years ago
LICENSE refactor package 5 years ago docs: expand the documentation 3 years ago
index.js perf: enable strict mode 3 years ago
package.json 1.0.4 3 years ago


NPM version Build status Test coverage License Downloads Gittip

Destroy a stream.

This module is meant to ensure a stream gets destroyed, handling different APIs and Node.js bugs.


var destroy = require('destroy')


Destroy the given stream. In most cases, this is identical to a simple stream.destroy() call. The rules are as follows for a given stream:

  1. If the stream is an instance of ReadStream, then call stream.destroy() and add a listener to the open event to call stream.close() if it is fired. This is for a Node.js bug that will leak a file descriptor if .destroy() is called before open.
  2. If the stream is not an instance of Stream, then nothing happens.
  3. If the stream has a .destroy() method, then call it.

The function returns the stream passed in as the argument.


var destroy = require('destroy')

var fs = require('fs')
var stream = fs.createReadStream('package.json')

// ... and later