cancelable-pipeline

    1.0.0 • Public • Published

    cancelable-pipeline

    npm version Build Status codecov

    Cancelable stream.pipeline()

    const {createReadStream, createWriteStream, promises: {stat}} = require('fs');
    const cancelablePipeline = require('cancelable-pipeline');
     
    cancelablePipeline(createReadStream('1GB-file.txt'), createWriteStream('dest0'), async () => {
      (await stat('dest0')).size; //=> 1000000000;
    });
     
    const cancel = cancelablePipeline(createReadStream('1GB-file.txt'), createWriteStream('dest1'), async () => {
      (await stat('dest1')).size; //=> 263192576, or something else smaller than 1000000000
    });
     
    setTimeout(() => cancel(), 1000);

    Installation

    Use npm.

    npm install cancelable-pipeline
    

    API

    const cancelablePipeline = require('cancelable-pipeline');

    cancelablePipeline(stream0 [, stream1, stream2, ...] [, callback])

    stream0, stream1, stream2, ...: Stream
    callback: Function
    Return: Function

    cancelablePipeline(streams [, callback])

    streams: Stream[]
    callback: Function
    Return: Function

    The API is almost the same as stream.pipeline(). The only difference is cancelable-pipeline returns a Function which destroys all the piped Streams without passing any errors to the callback.

    const cancel = cancelablePipeline([src, transform, anotherTransform, dest], err => {
      err; //=> undefined
    });
     
    cancel();

    License

    ISC License © 2017 - 2019 Shinnosuke Watanabe

    Install

    npm i cancelable-pipeline

    DownloadsWeekly Downloads

    277

    Version

    1.0.0

    License

    ISC

    Unpacked Size

    4.56 kB

    Total Files

    4

    Last publish

    Collaborators

    • shinnn