File Explorer

/var/runtime/node_modules/@aws-sdk/node_modules/mqtt/node_modules/duplexify

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

README.md2.6 KB · 98 lines
# duplexify Turn a writeable and readable stream into a single streams2 duplex stream. Similar to [duplexer2](https://github.com/deoxxa/duplexer2) except it supports both streams2 and streams1 as inputand it allows you to set the readable and writable part asynchronously using `setReadable(stream)` and `setWritable(stream)` ```npm install duplexify``` [![build status](http://img.shields.io/travis/mafintosh/duplexify.svg?style=flat)](http://travis-ci.org/mafintosh/duplexify) ## Usage Use `duplexify(writable, readable, streamOptions)` (or `duplexify.obj(writable, readable)` to create an object stream) ``` jsvar duplexify = require('duplexify') // turn writableStream and readableStream into a single duplex streamvar dup = duplexify(writableStream, readableStream) dup.write('hello world') // will write to writableStreamdup.on('data', function(data) {  // will read from readableStream})``` You can also set the readable and writable parts asynchronously ``` jsvar dup = duplexify() dup.write('hello world') // write will buffer until the writable                         // part has been set // wait a bit ...dup.setReadable(readableStream) // maybe wait some more?dup.setWritable(writableStream)``` If you call `setReadable` or `setWritable` multiple times it will unregister the previous readable/writable stream.To disable the readable or writable part call `setReadable` or `setWritable` with `null`. If the readable or writable streams emits an error or close it will destroy both streams and bubble up the event.You can also explicitly destroy the streams by calling `dup.destroy()`. The `destroy` method optionally takes anerror object as argument, in which case the error is emitted as part of the `error` event. ``` jsdup.on('error', function(err) {  console.log('readable or writable emitted an error - close will follow')}) dup.on('close', function() {  console.log('the duplex stream is destroyed')}) dup.destroy() // calls destroy on the readable and writable part (if present)``` ## HTTP request example Turn a node core http request into a duplex stream is as easy as ``` jsvar duplexify = require('duplexify')var http = require('http') var request = function(opts) {  var req = http.request(opts)  var dup = duplexify(req)  req.on('response', function(res) {    dup.setReadable(res)  })  return dup} var req = request({  method: 'GET',  host: 'www.google.com',  port: 80}) req.end()req.pipe(process.stdout)``` ## License MIT ## Related `duplexify` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.