陈鹏铭 93064e9f91 首次提交 hai 11 meses
..
.travis.yml 93064e9f91 首次提交 hai 11 meses
LICENSE 93064e9f91 首次提交 hai 11 meses
README.md 93064e9f91 首次提交 hai 11 meses
example.js 93064e9f91 首次提交 hai 11 meses
index.js 93064e9f91 首次提交 hai 11 meses
package.json 93064e9f91 首次提交 hai 11 meses
test.js 93064e9f91 首次提交 hai 11 meses

README.md

cloneable-readable

Greenkeeper badge

Build Status

Clone a Readable stream, safely.

'use strict'

var cloneable = require('cloneable-readable')
var fs = require('fs')
var pump = require('pump')

var stream = cloneable(fs.createReadStream('./package.json'))

pump(stream.clone(), fs.createWriteStream('./out1'))

// simulate some asynchronicity
setImmediate(function () {
  pump(stream, fs.createWriteStream('./out2'))
})

cloneable-readable automatically handles objectMode: true.

This module comes out of an healthy discussion on the 'right' way to clone a Readable in https://github.com/gulpjs/vinyl/issues/85 and https://github.com/nodejs/readable-stream/issues/202. This is my take.

YOU MUST PIPE ALL CLONES TO START THE FLOW

You can also attach 'data' and 'readable' events to them.

API

cloneable(stream)

Create a Cloneable stream. A Cloneable has a clone() method to create more clones. All clones must be resumed/piped to start the flow.

cloneable.isCloneable(stream)

Check if stream needs to be wrapped in a Cloneable or not.

Acknowledgements

This project was kindly sponsored by nearForm.

License

MIT