Package Exports
- match-stream
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (match-stream) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
match-stream 
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.