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.
|
|
/*! * 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() } }
|