cloneable-readable
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/cloneable-readable package

    3.0.0 • Public • Published

    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

    Install

    npm i cloneable-readable

    DownloadsWeekly Downloads

    2,191,197

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    23.7 kB

    Total Files

    8

    Last publish

    Collaborators

    • matteo.collina