sentinal-stream

0.2.3 • Public • Published

Sentinal-Stream

A transform stream that finds a sentinal value in a data stream, and then emits it as a seperate data event.

Application

Any time you want to take a particular action if a certain value appears in a stream, e.g. splitting a stream, stopping a stream early, etc.

API

sentinal = new Sentinal(sep) returns a transform stream. sep is a buffered string. It will be stored on sentinal.seperator.

Example

var Sentinal = require('sentinal-stream')
  , through = require('through') // npm.im/through
  , from = require('from') // npm.im/from
  , sentence = ''
 
var periods = new Sentinal(new Buffer('|||'))
 
var source = from([
    '||| is the delimiter.'
  , ' Sometimes it fits|||'
  , 'Sometimes it might take'
  , 'more than one line|||'
  , 'Look||| two per chunk|||'
  , '||| or ||| even ||| three!'
  , 'And sometimes only part ||'
  , '| Of the separator fits.'
])
 
var gather_wipe = through(function(data) {
  if(data === periods.seperator) {
    sentence && console.log(sentence + '.')
    sentence = ''
    return
  }
  sentence += data 
})
 
source
  .pipe(periods)
  .pipe(gather_wipe) 
 
 

Yields:

is the delimiter. Sometimes it fits.
Sometimes it might take more than one line.
Look. two per chunk.
or even three! And sometimes only part .
 Of the seperator fits.

Readme

Keywords

none

Package Sidebar

Install

npm i sentinal-stream

Weekly Downloads

0

Version

0.2.3

License

MIT

Last publish

Collaborators

  • andrewwinterman