stream-workflow

1.0.11 • Public • Published

StreamFlow

Encapsulate streams for use in object-oriented programming.

NPM Build Status Coverage Status NPM Download Dependencies Status

Replace transform stream

Transform stream

const StreamFlow = require("stream-workflow");
const { Transform, pipeline } = require("stream");
const JSONStream = require("JSONStream");
const fs = require("fs");
 
fs.createReadStream(`data.json`)
    .pipe(JSONStream.parse("*"))
    .pipe(new Transform({
        objectMode: true,
        transform(chunk, enc, cb) {
            cb(null, chunk);
        }
    }));

by stream-workflow

StreamWorkflow

class CustomStream extends StreamFlow { {
    constructor({
        objectMode: true,
        init(stream) {              // init function must return the last stream of the pipeline.
            return pipeline(        
                stream,             // pathtrought stream
                JSONStream.parse(), // Transform 1 in diagram
                new Transform({     // Transform 2 in diagram
                    objectMode: true,
                    transform(chunk, enc, cb) {
                        cb(null, chunk);
                    }
                }),
                error => error && this.emit("error", error)
            )
        }
    })
}
 
fs.createReadStream(`data.json`)
    .pipe(new CustomStream());

Test

To run our tests, clone the stream-workflow repo and install the dependencies.

$ git clone https://github.com/BenoitClaveau/stream-workflow --depth 1
cd stream-workflow
$ npm install
cd tests
$ node.exe "../node_modules/mocha/bin/mocha" .

Package Sidebar

Install

npm i stream-workflow

Weekly Downloads

1

Version

1.0.11

License

MIT

Unpacked Size

511 kB

Total Files

13

Last publish

Collaborators

  • benoit.claveau