Initial commit for OpenECOMP SDN-C OA&M
[sdnc/oam.git] / dgbuilder / dgeflows / node_modules / serve-static / node_modules / send / node_modules / destroy / index.js
diff --git a/dgbuilder/dgeflows/node_modules/serve-static/node_modules/send/node_modules/destroy/index.js b/dgbuilder/dgeflows/node_modules/serve-static/node_modules/send/node_modules/destroy/index.js
new file mode 100644 (file)
index 0000000..b455217
--- /dev/null
@@ -0,0 +1,36 @@
+var ReadStream = require('fs').ReadStream
+var Stream = require('stream')
+
+module.exports = 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
+}
+
+function destroyReadStream(stream) {
+  stream.destroy()
+
+  if (typeof stream.close === 'function') {
+    // node.js core bug work-around
+    stream.on('open', onopenClose)
+  }
+
+  return stream
+}
+
+function onopenClose() {
+  if (typeof this.fd === 'number') {
+    // actually close down the fd
+    this.close()
+  }
+}