Newly Purchased Memories

    match-stream

    0.0.2 • Public • Published

    match-stream Build Status

    Supply a function to handle pattern matches within a NodeJS stream.

    Installation

    $ npm install match-stream

    Quick Examples

    End stream on match

    var MatchStream = require('match-stream');
    var streamBuffers = require("stream-buffers");
     
    var ms = new MatchStream({ pattern: 'World'}, function (buf, matched, extra) {
      if (!matched) {
        return this.push(buf);
      }
      this.push(buf);
      return this.push(null); //signal end of data
    });
     
    var sourceStream = new streamBuffers.ReadableStreamBuffer();
    sourceStream.put("Hello World");
    var writableStream = new streamBuffers.WritableStreamBuffer();
     
    sourceStream
      .pipe(ms)
      .pipe(writableStream)
      .once('close', function () {
        var str = writableStream.getContentsAsString('utf8');
        console.log('Piped data before pattern occurs:', "'" + str + "'");
        sourceStream.destroy();
      });
     
    //Output
    //Piped data before pattern occurs: 'Hello '

    Split stream

    var MatchStream = require('match-stream');
    var fs = require('fs');
     
    var line = "";
    var loremLines = [];
    var ms = new MatchStream({ pattern: '.', consume: true}, function (buf, matched, extra) {
      line += buf.toString();
      if (matched) {
        loremLines.push(line.trim());
        line = "";
      }
    });
     
    fs.createReadStream('lorem.txt')
      .pipe(ms)
      .once('finish', function() {
        console.log(loremLines);
      });

    License

    MIT

    Acknowledgements

    Special thanks to @wanderview for assisting with the API.

    Keywords

    none

    Install

    npm i match-stream

    DownloadsWeekly Downloads

    72,566

    Version

    0.0.2

    License

    MIT

    Last publish

    Collaborators

    • evanoxfeld