Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/streamsearch/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
Description =========== streamsearch is a module for [node.js](http://nodejs.org/) 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](https://github.com/FooBarWidget/boyer-moore-horspool). Requirements ============ * [node.js](http://nodejs.org/) -- v10.0.0 or newer Installation ============ npm install streamsearch Example ======= ```js const { inspect } = require('util'); const StreamSearch = require('streamsearch'); const needle = Buffer.from('\r\n'); const ss = new StreamSearch(needle, (isMatch, data, start, end) => { if (data) console.log('data: ' + inspect(data.toString('latin1', start, end))); if (isMatch) console.log('match!'); }); const chunks = [ 'foo', ' bar', '\r', '\n', 'baz, hello\r', '\n world.', '\r\n Node.JS rules!!\r\n\r\n', ]; for (const chunk of chunks) ss.push(Buffer.from(chunk)); // output: // // data: 'foo' // data: ' bar' // match! // data: 'baz, hello' // match! // data: ' world.' // match! // data: ' Node.JS rules!!' // match! // data: '' // match! ``` API === Properties ---------- * **maxMatches** - < _integer_ > - The maximum number of matches. Defaults to `Infinity`. * **matches** - < _integer_ > - The current match count. Functions --------- * **(constructor)**(< _mixed_ >needle, < _function_ >callback) - Creates and returns a new instance for searching for a _Buffer_ or _string_ `needle`. `callback` is called any time there is non-matching data and/or there is a needle match. `callback` will be called with the following arguments: 1. `isMatch` - _boolean_ - Indicates whether a match has been found 2. `data` - _mixed_ - If set, this contains data that did not match the needle. 3. `start` - _integer_ - The index in `data` where the non-matching data begins (inclusive). 4. `end` - _integer_ - The index in `data` where the non-matching data ends (exclusive). 5. `isSafeData` - _boolean_ - Indicates if it is safe to store a reference to `data` (e.g. as-is or via `data.slice()`) or not, as in some cases `data` may point to a Buffer whose contents change over time. * **destroy**() - _(void)_ - Emits any last remaining unmatched data that may still be buffered and then resets internal state. * **push**(< _Buffer_ >chunk) - _integer_ - Processes `chunk`, searching for a match. 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.