| 
				
					 | 
			пре 2 година | |
|---|---|---|
| .. | ||
| lib | пре 2 година | |
| LICENSE | пре 2 година | |
| README.md | пре 2 година | |
| package.json | пре 2 година | |
streamsearch is a module for node.js that allows searching a stream using the Boyer-Moore-Horspool algorithm.
This module is based heavily on the Streaming Boyer-Moore-Horspool C++ implementation by Hongli Lai here.
npm install streamsearch
  var StreamSearch = require('streamsearch'),
      inspect = require('util').inspect;
  var needle = new Buffer([13, 10]), // CRLF
      s = new StreamSearch(needle),
      chunks = [
        new Buffer('foo'),
        new Buffer(' bar'),
        new Buffer('\r'),
        new Buffer('\n'),
        new Buffer('baz, hello\r'),
        new Buffer('\n world.'),
        new Buffer('\r\n Node.JS rules!!\r\n\r\n')
      ];
  s.on('info', function(isMatch, data, start, end) {
    if (data)
      console.log('data: ' + inspect(data.toString('ascii', start, end)));
    if (isMatch)
      console.log('match!');
  });
  for (var i = 0, len = chunks.length; i < len; ++i)
    s.push(chunks[i]);
  // output:
  //
  // data: 'foo'
  // data: ' bar'
  // match!
  // data: 'baz, hello'
  // match!
  // data: ' world.'
  // match!
  // data: ' Node.JS rules!!'
  // match!
  // data: ''
  // match!
chunk of data may be available that did not match the needle. Data (if available) is in chunk between start (inclusive) and end (exclusive).maxMatches - < integer > - The maximum number of matches. Defaults to Infinity.
matches - < integer > - The current match count.
(constructor)(< mixed >needle) - Creates and returns a new instance for searching for a Buffer or string needle.
push(< Buffer >chunk) - integer - Processes chunk. The return value is the last processed index in chunk + 1.
reset() - (void) - Resets internal state. Useful for when you wish to start searching a new/different stream for example.