nntp-fast
Version:
A lightweight nntp client for node made with attention to speed and ease of use. Works with promises and streams.
63 lines (62 loc) • 1.66 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from "events";
declare enum DelimiterSearchState {
START = 0,
CR = 1,
CR_LF = 2,
CR_LF_DOT = 3,
CR_LF_DOT_CR = 4
}
declare enum Delimiter {
CRLF = 0,
MLDB = 1
}
/**
* A match may or may not have been made. In either case, a preceding chunk of data may be
* available that did not match the needle. Data (if available) is in `chunk` between `start`
* (inclusive) and `end` (exclusive).
*
* @param isMatch Whether a match had been made (after the chunk)
* @param chunk Buffer of data
* @param start Start position of data in chunk (inclusive)
* @param end Start position of data in chunk (exclusive)
*
* @asMemberOf DotUnstuffingStreamSearch
* @event
*/
export declare function info(isMatch: boolean, chunk: Buffer, start: number, end: number): void;
/**
* Searches for needle in stream while also dot-unstuffing.
*/
export default class DotUnstuffingStreamSearch extends EventEmitter {
_bufpos: number;
_needle: Delimiter;
_searchState: DelimiterSearchState;
matches: number;
maxMatches: number;
/**
*
* @param needle Must me `Buffer.from("\r\n.\r\n")`
*/
constructor(needle: Buffer);
/**
* Resets internal state
*/
reset(): void;
/**
* Processes `chunk`.
* @param chunk
* @param pos
*
* @fires info
*
* @returns The last processed index in chunk + 1.
*/
push(chunk: Buffer, pos?: number): number;
/**
* @private
* @param data
*/
_feed(data: Buffer): number;
}
export {};