UNPKG

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
/// <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 {};