diff options
| author | 8cy <[email protected]> | 2020-05-24 07:40:34 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-05-24 07:40:34 -0700 |
| commit | a7dc1894d3f030926a95b948bd46fa60e95b8dcb (patch) | |
| tree | aa5c1b50427f9658ea2de686ea8c2032f289a6a2 /node_modules/destroy/index.js | |
| download | aghpb-online-a7dc1894d3f030926a95b948bd46fa60e95b8dcb.tar.xz aghpb-online-a7dc1894d3f030926a95b948bd46fa60e95b8dcb.zip | |
wow it actually works lol
Diffstat (limited to 'node_modules/destroy/index.js')
| -rw-r--r-- | node_modules/destroy/index.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/node_modules/destroy/index.js b/node_modules/destroy/index.js new file mode 100644 index 0000000..6da2d26 --- /dev/null +++ b/node_modules/destroy/index.js @@ -0,0 +1,75 @@ +/*! + * destroy + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var ReadStream = require('fs').ReadStream +var Stream = require('stream') + +/** + * Module exports. + * @public + */ + +module.exports = destroy + +/** + * Destroy a stream. + * + * @param {object} stream + * @public + */ + +function destroy(stream) { + if (stream instanceof ReadStream) { + return destroyReadStream(stream) + } + + if (!(stream instanceof Stream)) { + return stream + } + + if (typeof stream.destroy === 'function') { + stream.destroy() + } + + return stream +} + +/** + * Destroy a ReadStream. + * + * @param {object} stream + * @private + */ + +function destroyReadStream(stream) { + stream.destroy() + + if (typeof stream.close === 'function') { + // node.js core bug work-around + stream.on('open', onOpenClose) + } + + return stream +} + +/** + * On open handler to close stream. + * @private + */ + +function onOpenClose() { + if (typeof this.fd === 'number') { + // actually close down the fd + this.close() + } +} |