Buckets:
1.39 GB
20,046 files
Updated 15 days ago
Ctrl+K
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| .travis.yml | 127 Bytes xet | 45b07e0d | |
| LICENSE | 1.08 kB xet | c84a0fef | |
| README.md | 1.42 kB xet | e4cfbb02 | |
| example.js | 321 Bytes xet | 7cadc5fb | |
| index.js | 3.23 kB xet | bdb521f4 | |
| package.json | 960 Bytes xet | 2d08102b | |
| test.js | 14.7 kB xet | 2c15c273 |
cloneable-readable
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
- Total size
- 1.39 GB
- Files
- 20,046
- Last updated
- May 9
- Pre-warmed CDN
- US EU US EU